使用NodeJS的Express4.X框架写WEB应用

Express 3.0 与 4.0的特性改变

Express 3.0Express 4.0
bodyParserbody-parser
compresscompression
cookieSessioncookie-session
loggermorgan
cookieParsercookie-parser
sessionexpress-session
faviconstatic-favicon
response-timeresponse-time
error-handlererrorhandler
method-overridemethod-override
timeoutconnect-timeout
vhostvhost
csrfcsurf

安装Express, 并创建一个WEB项目

首先安装好NodeJS。
安装Express 4:

> npm install express -gd

其中选项-g表示全局安装,目标模块将会被安装到NODE_PATH的lib里面node_modules文件夹中,全局使用。-d选项表示一并安装依赖模块。没有-g选项的话会在当前目录(通常是项目目录)建立一个node_modules目录。

安装成功后,命令行会提示 npm info ok

express 4.0之后将命令工具分出来了(创建一个APP的工具),因此还需安装express-generator。没它创建不了应用程序。

> npm install -g express-generator #全局安装-g
> express -V # 检查express的版本

安装好以后,可以使用express的命令,创建项目了。

> express -e firstweb # 在当前目录下会创建firstweb目录
> cd firstweb # 进入项目目录
> npm install # 在项目目录中,下载依赖库来构建项目。

启动项目:

> npm start

至此,该WEB应用被启动了。
打开浏览器访问:http://localhost:3000/

Express4中引入了著名的debug模块,所以debug模式更方便的研究Node中的模块,其使用方法:https://www.npmjs.org/package/debug
使用DEBUG方式启动项目:

> DEBUG=firstweb ./bin/www # 用文本编辑器看看这个www文件的内容!

Express项目的目录结构

  • bin, 存放启动项目的脚本文件
  • node_modules, 存放所有的项目依赖库
  • public,静态文件(css,js,img)
  • routes,路由文件(MVC中的C,controller)
  • views,页面文件(Ejs模板)
  • package.json,项目依赖配置及开发者信息
  • app.js,应用核心配置文件,程序启动文件

package.json文件

package.json用来声明项目基本信息和使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行npm install命令即可安装所需要的模块了。

{
  "name": "first",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "ejs": "~2.4.1",
    "express": "~4.13.4",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0"
  }
}

里面的scripts属性,是用于定义操作命令的,可以非常方便的增加启动命令,比如默认的start,用npm start代表执行node ./bin/www命令。

编写业务处理程序

比如,编写一个查看文章的功能:添加一个article的路由句柄。
在routes目录下面新建一个article.js文件,来具体实现业务罗辑。
url为http://localhost:3000/article/id/xxxx
每个文章有一个id,一串数字,返回json数据。
article.js文件内容如下:

var express = require('express');
var router = express.Router();

/* GET data listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a article');
});

router.get(/^\/id\/(\d+)$/, function(req, res, next) {
    var article_id = req.params[0];
    res.send("article id is : " + article_id);
});

module.exports = router;

以上代码完成了路由句柄,之后,将它挂在路由路径上:
在app.js添加以下代码

var article = require('./routes/article.js');
app.use('/article', article);

独立编写程序:不使用Express工具生成项目结构

以上的项目是用express-generator工具生成的。
也可以不用他,自己从零开始写。
程序和上面一样,随意放到任何目录都可以,但是要注意一点,需要设置NODE_PATH这个环境变量,并指向安装的扩展包的根目录。比如,WINDOWS下默认是:C:\Users\fd\AppData\Roaming\npm\node_modules
如果不指定这个目录,那么就需要在项目目录下再执行一次本地安装:npm install express
否则,会报错:Cannot find module ‘express’

http://blog.fens.me/nodejs-express4/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值