去年年底迎来了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/

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

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

nodejs+express+jade给我baby做个小相册的更多相关文章

  1. nodejs+express+jade+mongodb给我baby做个小相册(2)-留言板

    上一篇简单的实现了下照片的展现跟浏览功能,这一篇我将给这个程序添加一个留言的功能.那么留言的话肯定要涉及到数据持久了,其实对于这个小功能的话,用个xml就可以,不过为了看起来更加高大上,我决定使用mo ...

  2. webstorm创建nodejs + express + jade 的web 项目

    webstorm创建nodejs + express + jade 的web 项目 前简单了解过nodejs,觉得用nodejs来做个网站也太麻烦了,要自己拼html的字符串返回,这能做网站嘛? 最近 ...

  3. nodejs学习篇 (1)webstorm创建nodejs + express + jade 的web 项目

    之前简单了解过nodejs,觉得用nodejs来做个网站也太麻烦了,要自己拼html的字符串返回,这能做网站嘛? 最近看到使用jade模板来开发,觉得挺新奇的,于是试了一把,也了解了一些特性,算是个新 ...

  4. nodejs+express+jade配置

    安装步骤 一.首先可跟着这个网址安装http://jingyan.baidu.com/article/91f5db1b2bb6941c7f05e33c.html,路径可由自己定. 二.同时参考http ...

  5. nodeJS+express+Jade写一个局域网聊天应用(node基础)

    为了复习一下nodeJS, 而且socketIO这东西听起来就好高端有木有, 而且有人写过了open, 也可以作为自己的参考有木有, 点击下载源代码: express是4.x的版本, 跟以前的配置有些 ...

  6. nodejs+express+jade安装备忘

    安装步骤 1.安装nodejs,比如安装在E:\nodejs. 确保有两个环境变量 用户环境变量:C:\Users\Administrator\AppData\Roaming\npm 系统环境变量:e ...

  7. jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)

    jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...

  8. nodejs+express +jade模板引擎 新建项目

    先 安装 nodejsiDEAAM 2015/7/16 22:47:25然后安装 npm install expressiDEAAM 2015/7/16 22:47:35然后安装 npm instal ...

  9. nodejs+express使用html和jade

    nodejs+express经常会看到使用jade视图引擎,但是有些人想要访问普通的html页面,这也是可以的: var express = require('express'); var port ...

随机推荐

  1. Apache Storm 与 Spark:对实时处理数据,如何选择【翻译】

    原文地址 实时商务智能这一构想早已算不得什么新生事物(早在2006年维基百科中就出现了关于这一概念的页面).然而尽管人们多年来一直在对此类方案进行探讨,我却发现很多企业实际上尚未就此规划出明确发展思路 ...

  2. 移动APP接口遇到的一些小问题

    一:IIS设置站点后无法访问apk文件 首先要给IIS服务器根目录添加MIME类型影射文件扩展名:apkMIME类型 :application/vnd.android.package-archive ...

  3. word2007二级标题自动编号不从大标题开始的解决方法

    今天在编写word文档的时候,遇到一个很奇怪的问题,word2007二级标题自动编号不从大标题开始,可能我说的比较模糊,我截个图大家一看就明白了. 我想要的是2.1 2.2结果,他确是从1.1开始了. ...

  4. 导出websphere内存镜像

    1.      将脚本放致profiles\appservername\bin下 2.      查看一下soap host(在控制台port中能够看到) 3.      运行例如以下命令:./wsa ...

  5. Python: 拷贝函数签名

    使用场景有很多,比如C API在Python下很多都变成了(*args, **kwargs)的参数,这时候可能需要为其添加一个更严格签名来约束参数. 查了许多资料,能有效的拷贝函数签名貌似只能通过动态 ...

  6. Openvswitch原理与代码分析(7): 添加一条流表flow

    添加一个flow,调用的命令为 ovs-ofctl add-flow hello "hard_timeout=0 idle_timeout=0 priority=1 table=21 pkt ...

  7. 【Cocos2d-Js基础教学(5)资源打包工具的使用及资源的异步加载处理】

    TexturePacker是纹理资源打包工具,支持Cocos2dx的游戏资源打包. 如果用过的同学可以直接看下面的资源的异步加载处理 首先为什么用TexturePacker? 1,节省图片资源实际大小 ...

  8. Spring3系列10- Spring AOP——Pointcut,Advisor拦截指定方法

    Spring3系列10- Spring AOP——Pointcut,Advisor 上一篇的Spring AOP Advice例子中,Class(CustomerService)中的全部method都 ...

  9. Spring3系列4-多个配置文件的整合

    Spring3系列4-多个配置文件的整合 在大型的Spring3项目中,所有的Bean配置在一个配置文件中不易管理,也不利于团队开发,通常在开发过程中,我们会按照功能模块的不同,或者开发人员的不同,将 ...

  10. centos7.0 手动编译 lamp环境

    首先新建用户 lamper,并添加 sodu权限 两种方法:is not in the sudoers file 解决(转) xx is not in the sudoers file 问题解决[转载 ...