nodejs+express+jade给我baby做个小相册

去年年底迎来了my little star。从此人生多了一个最重要的牵挂。生了宝宝全家人都太忙了。最近宝宝稍微大点了,终于有空可以研究下技术了。这是14年第一帖。废话不多了。开始吧

1.安装NTVS

最为一个资深.NET程序员我还是喜欢用VS来开发(不喜勿喷),使用VS开发node需要开发NTVS。安装NTVS,这个不多说了,已经有人介绍过了。去这里下载吧http://nodejstools.codeplex.com/

装好后就可以开始了。

2.第一个hello world

新建一个nodejs项目:

运行一下提示找不到模块,这是因为少了express,jade,stylus三个模块。

我们使用npm下载下来。

安装express

cd到程序目录,然后npm install express 完成后安装另外2个。

这里其实本来可以使用图形化的npm来安装。只是最近npm的服务器有点抽风,始终加载不进来,于是我直接使用npm命令来加载。

另外npm的服务器有的时候很慢,可以切换到cnpm的服务器上:npm set registry=http://r.cnpmjs.org/

速度还行。

再次运行一下,擦,还是报错。

这是因为原先的模板使用doctype 5的标签导致,因为这个标签已经过时了,改用doctype html。

修改layout.jade

doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
  block content

修改index.js

*
 * GET home page.
 */

exports.index = function(req, res){
  res.render('index', { title: 'Hello World!' });
};

再次运行终于可以了。可爱的Hello World出现了。

3.bootstrap相册

下面开始做相册:

前端我使用bootstrap来做,bootstrap这种神器就是为我们这种不懂美工的程序猿而生的。

下载bootstrap,把css,跟js放到public文件夹下面。在public文件夹下面新建一个baby文件夹,里面放要显示的图片。

修改layout.jade

doctype html
html
    head
        title= title
        link(rel='stylesheet', href='/stylesheets/style.css')
        link(rel='stylesheet', href='/stylesheets/bootstrap.min.css')
        link(rel="stylesheet" href="http://blueimp.github.io/Gallery/css/blueimp-gallery.min.css")
        link(rel="stylesheet" href="/stylesheets/bootstrap-image-gallery.min.css")
    body(style='background:black')
        div(class="navbar navbar-inverse navbar-fixed-top" )
            div(class='container')
                div(class='navbar-header')
                    button(class='navbar-toggle collapsed' data-toggle="collapse" data-target=".navbar-collapse")
                        span(class='sr-only')='Toggle navigation'
                        span(class='icon-bar')
                        span(class='icon-bar')
                        span(class='icon-bar')
                    a(class='navbar-brand' href='#')='My little star'
                div(class='collapse navbar-collapse' style='height: 1px;')
                    ul(class='nav navbar-nav')
                        li
                            a(href='#')='Home'
                        li
                            a(href='#')='About'
            div( style='background-image: url(/images/top_bg3.jpg);background-position: center 0;background-size: cover;height:200px' )

        block content
        script(src='http://cdn.bootcss.com/jquery/1.10.2/jquery.min.js')
        script(src='/bootstrap.js')
        script(src="http://blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js")
        script(src="/bootstrap-image-gallery.min.js")

layout.jade相当于asp.net mvc里面的_layout.cshtml。那么jade就相当于razor视图引擎。jade可以简化html的书写比如一个<div></div>用jade写只要div就可以了。它也支持for each等语法。这里强调一点,jade的嵌套格式不要么使用tab要么使用空格,不能混着用。

修改index.js

这个文件的作用相当于asp.net mvc下的controller,这里使用nodejs读取baby文件夹下的image文件然后传递到index.jade视图上。

var fs = require('fs');
exports.index = function(req, res){
   
 var files = fs.readdirSync('public/images/baby');
  res.render('index', { title: 'My Little Star',imgs:files });
};

修改index.jade

使用index.js传递过来的数据,循环生成img标签。

extends layout
block content
    div(style='height:210px')
        for img in imgs
            a(href='images/baby/'+img title=img data-gallery)
                img(src='images/baby/'+img  class="img-thumbnail" style='width:140px;height:140px;margin:5px' )

运行一下,哈哈

下面是演示网址,我部署在AZURE上:

http://kklldog.chinacloudapp.cn:8888/

后续我会添加评论,日志等功能,敬请期待。

最后为了我的小星星,求一个苏州地区的好坑,求各位大神推荐。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

【.NET】UnpackMe!Shielden+DNGuard,双层变异壳 - 脱壳详解

前言:自从脱壳神器de4dot横空出世以来,我们可以看到几乎所有的.net破文中的第一部分就是不管三七二十一把程序丢进去脱壳以及反混淆。可是你真的明白de4do...

6704
来自专栏iOS122-移动混合开发研究院

iRate快速绕坑使用

目的 iRate库通过激励用户去AppStore打分,来帮助你提升iPhone和Mac App的质量。这是取得经常使用的目标用户的意见的最好的方式之一。 方案(...

1916
来自专栏针针小站

【Soft】Windows10 美化教程之Dock篇 – MyDock

1.3K3
来自专栏技术小黑屋

Octopress添加回到顶部功能

在Octopress当阅读到文章底部的时候,或多或少都想回到顶部,而默认的Octopress没有提供回到顶部的功能,于是一不做二不休,自己找个控件加上。

831
来自专栏深度学习那些事儿

在WordPress中使用Markdown进行写作的正确姿势

在wordpress中使用markdown语法来进行写作,是很多wordpress博主都要想到的一点。虽然说现在wordpress已经“原生”支持wordpre...

2.7K7
来自专栏大数据挖掘DT机器学习

python爬取网易云音乐并分析:用户有什么样的音乐偏好?

发现自己有时候比挖掘别人来的更加有意义,自己到底喜欢谁的歌,自己真的知道么?习惯不会骗你。 搭建爬虫环境 1.安装selenium pip install s...

1K7
来自专栏跟着阿笨一起玩NET

在大型软件中用Word做报表: 书签的应用

本文转载:http://www.cnblogs.com/huyong/archive/2011/08/24/2151599.html

661
来自专栏企鹅号快讯

几款可替代Dreamweaver的HTML5开发工具

Dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的Dreamweaver,一直用到现在, 身边的朋友有跟我推荐...

4115
来自专栏Jerry的SAP技术分享

如何使用SAP CRM Marketing Survey创建一个市场问卷调查

使用事务码CRM_SURVEY_SUITE进行编辑。选中Activities这个应用类型,点击新建按钮:

1111
来自专栏程序员的诗和远方

React Native 实现二维码扫描

最近刚好在学习 React Native 想搞个扫描条形码,二维码的小应用,因为涉及硬件接口,而且自己本身并没有原生开发背景,踩了几个坑,记录一下。 扫描...

3908

扫码关注云+社区