Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。官网链接
安装
在 目录下安装 Express 并将其保存到依赖列表中。如下:
$ npm install express --save
使用
目标文件 app.js
var express = require('express') //引包
app.get('/',function(req, res){
res.send('hello express!')
})
app.listen(3000, function(){
console.log('running at port 3000...')
})
Exprerss基本操作
- send
res.send(“hello”)
其实原来在node里使用的end(),write()都可以在express中使用,但是express有一个更好用的函数send(),使用之后就可以不用end()来结束了,可以自动节结束响应。
- static-sever静态资源服务
基本路由有两种形式:get 和 post
使用一个基本路由需要做三件事: - 请求方法
- 请求路径
- 请求处理函数
例如:在public下有一个index.html文件,需要访问这个文件可以使用以下三种方式:
app.use(’/public/’, express.static(’./public/’))
//127.0.0.1:3000/public/index.html
必须是 /a/puiblic目录中的资源具体路径
app.use(’/a/’, express.static(’./public/’))
//127.0.0.1:3000/a/index.html
省略 /public 的方式来访问
app.use(express.static(’./public/’))
//127.0.0.1:3000/index.html
通常第一种方法容易辨识,推荐使用第一种方法。
3.使用nodemon 工具自动重启服务
nodemon: 一个第三方命令行工具,用来解决频繁修改代码重启服务器问题
是一个基于node.js开发的命令行工具
下载:
npm install --global nodemon
使用:
nodemon app.js
将原来的node换成nodemon就可以了,用来监视文件变化
- 在Express中配置使用art-template模板引擎
a. 安装
npm install --save art-template
npm install --save express-art-template
b. 使用
app.engine(‘html’, require(‘express-art-template’))
参一表示:当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎
解释为什么express使用模板引擎时还要装art-template
express-art-template 是专门用来在 Express 中把 art-template 整合到 Express 中,虽然外面这里不需要记载 art-template 但是也必须安装,原因就在于 express-art-template 依赖了 art-template
- 在Express中渲染模板引擎
Express 为 Response 相应对象提供了一个方法:render
render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了
使用方法:
res.render(‘html模板名’, {模板数据})
第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件,也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
如果想要修改默认的 views 目录,则可以:
app.set(‘views’, render函数的默认路径)
- 在Express中配置解析表单Post请求体数据
当以 POST 请求 /post 的时候,执行指定的处理函数
app.post(’/post’)
参一是方法,参二是路径标识
作用是:
这样的话我们就可以利用不同的请求方法让一个请求路径使用多次
在get请求里,有一个req.query,但是这个只能拿get请求参数
在post请求里,没有内置获取表单post请求的API,则可以使用body-parser
使用方法:
引包:
var bodyParser = require(‘body-parser’)
2.配置body-parser
// 配置 body-parser 中间件(插件,专门用来解析表单 POST 请求体)
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
只要加入了这个配置,则在req的请求对象上会多出来一个属性:body
可以直接通过req.body来获取表单post请求数据。