express的安装

本文介绍了基于 Node.js 的 Express 框架,它可用于创建 Web 和移动应用。重点阐述了 Express 4.x 较 3.x 的改动,如取消 Connect 依赖、移除多数内置中间件等。还给出了迁移总结,最后介绍了 npm 本地和全局安装 Express 的方式及安装确认方法。

Express介绍

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。 Express 含有丰富的 HTTP api和任意排列组合的 Connect 中间件,让你创建健壮、友好的 API 变得既快速又简单。 Express 不对 Node.js 已有的特性进行二次抽象,我们只是在它之上扩展了 Web 应用所需的基本功能。

版本

Express 4.x 较 Express 3.x 进行了较大的改动,原来基于 Express 3.x 的项目无法直接升级到 4.x。

  1. Express 4.x的主要变化

重新撰写Express内核,取消了原来对于Connect的依赖
移除了大部分Build-in的Middleware
Middleware可以仅对特定url前缀的请求执行,并且支持url中的参数
对Routing系统的扩展

  1. 取消Connect的依赖

Express 3.x是基于 Connect 构建的。重构后的 Express 4.x取消了对 Connect 的依赖,变成了完全独立的模块。但由于采用一致的 Middleware 处理方法,新的 Express 4.x仍然对 Connect 的所有 Middleware 向下兼容,所以在 Express 中仍然可以使用 Connect 的 Middleware。

  1. 移除绝大多数Build-in的Middleware

Express 4.x的理念是仅专注于最核心的 routing 功能,而将其他组建的选择全部交由用户配置,一方面提供更好的灵活和定制性,另一方面可以始终让用户使用最新的 Middleware 而将其和 Express 的更新独立开来。其核心中仅保留了 express.static,其余 Middleware 均需要通过 npm 安装并且 require。下表中是主要移除的模块列表:

  1. 限定url前缀执行的Middleware

app.use(’/users/:id’, function(req, res, next) {
console.log(‘ID:’, req.params.id);
next();
})
‘/users/:id’ 被视作请求 url 的前缀,凡是以此前缀的请求(例如:’/users/yeelan0319/daily’)等等均会经过这个 Middleware 的处理。(与 Route 中的 url 不同,route 中必须完全匹配)。
注:此时得到的 req.path 是除去前缀后的内容。

  1. Routing系统的扩展

Express 自动引用 Router Middleware。
原本在 Express 3.x中需要app.use(app.router),而无关于 app.get() 等定义的位置,这造成了一定的混乱。4中彻底取消了上述命令的引用,严格按照定义的顺序执行 use,get 或者其他的 http 请求。
app.route()
app.route() 方法更好的支持了 REST 风格的接口,减少了输入错误的风险,增强代码可读性。不得不说是非常美丽的一个解决方案!
app.route(’/book’)
.get(function(req, res) {
res.send(‘Get a random book’);
})
.post(function(req, res) {
res.send(‘Add a book’);
})
.put(function(req, res) {
res.send(‘Update the book’);
})
express.Router
express.Router 是一个完整的具有 Middleware 和路由 Routing 的对象。通过
var router = require(‘express’).Router()
实例化后,可以使用 router.use() 和 router.get() 等方法,定义一个完整的 Node 模块,再将 router exports 出去。这样实质上是定义了一个大的应用中的“微型应用”。

  1. Express 4.x迁移总结

安装对应的 Middleware。注意即使是上表中的对应也仅应当作为参考,因为有可能由于Middleware的升级而导致参数和返回值的变化,切忌盲目的直接安装并应用到生产环境中。
不需要再使用HTTP.createServer()方法,同时也不要require http模块了
不需要再使用app.use(app.router),将原本放在这句命令以下的Middleware移至get/post等HTTP verb的后面
重新安装express generator

安装方式

npm 本地安装 express 命令:
$ mkdir myExpressPro
$ cd myExpressPro
$ npm init -y
$ npm i -S express
npm 全局安装 express 命令:
$ npm install express-generator -g

安装确认

在 git-bash 命令行工具中输入 “express -v” 命令,如果全局安装成功,将显示如下信息:
$ express -v

Usage: express [options] [dir]

Options:

–version output the version number
-e, --ejs add ejs engine support
–pug add pug engine support
–hbs add handlebars engine support
-H, --hogan add hogan.js engine support
-v, --view add view support (dust|ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
–no-view use static html instead of view engine
-c, --css add stylesheet support (less|stylus|compass|sass) (defaults to plain css)
–git add .gitignore
-f, --force force on non-empty directory
-h, --help output usage information

error: option `-v, --view ’ argument missing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值