使用nodejs+express开发

express是在nodejs的基础上,拓展出的一个简洁实用的框架结构,更方面处理事情

搭建框架

  1. 安装nodejs、npm包管理
  2. 安装express:npm install -g express;(express -V查看版本);
  3. 安装express的debug工具:npm install -g node-inspector(调用:node-debug app.js)

问题:解决express -V不是内部命令的问题:
解答:npm install -g express 最新版本会安装到 C:\Users\username\AppData\Roaming\npm\node_modules下,4.x.x以上版本必须安装npm install express-generator -g;(-g将自动设置环境变量;)

  1. 创建工程:D:\workspace\project>express -e nodejs-demo(注意:-e指ejs模板;-J指jade模板)
  2. 根据package.json(express和ejs)下载依赖包:D:\workspace\project\nodejs-demo>npm install
  3. 运行D:\workspace\project\nodejs-demo>node app.js
    1. 访问localhost:3000,每次改动代码都需重启;
    2. 安装supervisor每次修改代码自动重启,节省时间(npm install supervisor)
    3. 启动服务supervisor app.js
  4. 项目框架搭建完成,目录结构:
  • app.js程序启动文件
  • public静态文件夹(img、css、js)
  • routes路由文件夹(mvc中的c)
  • views页面文件(ejs模板)
  • package.json项目依赖配置和开发者信息
  • node_modules存放所有的项目依赖

使用模板Ejs

目的:将模板后缀改为.html,用app.engine(extname,callback)重设模板文件扩展名,如果用ejs模板引擎来处理.html后缀

(1)修改app.js:

  • 模块依赖区域(加):var ejs=require(‘ejs’);>
  • 环境变量区域:修改app.set(‘view engine’, ‘ejs’);为
    app.engine(‘.html’,ejs.__express);
    app.set(‘view engine’,’html’);
  • 将view文件夹中的index.ejs修改为index.html
  • 访问localhost:3000

(2)增加html页面:

  • 增加header.html、footer.html、index.html
  • index.html:<% include header.html %>

    <%= title %>

    <% include footer.html %>

注意事项:
3. app.engine(ext,callback):ext替换后的扩展名;callback处理ext扩展名的文件,__express是ejs的公共属性,要渲染的文件扩展名,替换前的扩展名;
4. app.set(name,value)app.get(name)如var一样,设置变量
5. app.use([path],function);使用中间件function,path默认’/’;当请求来时,依次去请求这些中间件;例如:

  • 设置静态文件目录,为当前目录的public,将静态文件放入public,就能读取;(注意加载顺序)
  • app.use(‘/static’,express.static(__dirname+’/public’));//GET /static/javascript/jquery.js …

&
7. app.render(view,[option],callback)渲染view,callback来处理返回的渲染后的字符串,如:res.render(‘index’, { title: ‘Express’ })渲染view/index.html下面<%= title %>


路由功能

所谓路由:访问一个服务器的路径,服务器对我们访问的路径做出响应,采取一定的动作,这一个过程即为一个路由;一般由get|post|all实现;


session使用

session:回话,进行某活动连续的一段时间;
在这里,选用session-mongoose的原因:nodejs和mongoose都基于js且数据存储都是json,前后端都能直接处理json,减少转换;


  • 安装参照:
    http://www.cnblogs.com/mecity/archive/2011/06/11/2078527.html
    程序启动:cdm中执行
    (1)D:\test\test-express\mongodb\bin>mongod –dbpath “D:\test\test-express\mongodb\data\db”成功后,数据库已经启动,该界面为mongo的启动程序;
    (2)关闭后,双击bin下的mongod.exe,启动程序开启;
    (3)在D:\test\test-express\mongodb\bin>mongo,如图:
    (4)开始数据库操作:help
  • 修改app.js:

  • 引入:
    SessionStore = require(“session-mongoose”)(express);
    var store = new SessionStore({
    url: “mongodb://localhost/session”,interval: 120000});
  • 插入:
    app.use(express.cookieParser());
    app.use(express.cookieSession({secret : ‘fens.me’}));
    app.use(express.session({
    secret : ‘fens.me’, store: store, cookie: { maxAge: 900000 }
    }));
    app.use(function(req, res, next){
    res.locals.user = req.session.user;
    next();
    });
    app.use(app.router);

对于session-mongoose(https://github.com/donpark/session-mongoose)的操作,简要介绍一下:

引用块内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值