Express
安装
基于 Node.js 平台,快速、开放、极简的 Web 开发框架
基本使用
const express = require('express') const app = express() const port = 3000
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log(`Example app listening on port 3000!`))
|
基本路由
路由器
get:
app.get('/', (req, res) => res.send('Hello World! GET'))
|
post:
app.post('/', (req, res) => res.send('Hello World! POST'))
|
在Express中获取表单GET数据请求体
Express内置了一个API,可以直接通过req.query
来获取
app.post('/sub',function(req, res){ var comment = req.query comment.dateTime = time.format(new Date(), 'YY-MM-DD') comments.push(comment) res.redirect('/') })
|
在Express中获取表单post数据请求体
在express官方没有内置获取表单Post请求体的API,在此需要使用一个第三方包:body-parser
body-parser
安装
npm install body-parser --save
|
配置
var express = require('express') var bodyParser = require('body-parser')
var app = express()
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
|
使用
app.post('/post',function(req, res){ var comment = req.body comment.dateTime = time.format(new Date(), 'YY-MM-DD') comments.push(comment) res.redirect('/') })
|
路由API—Router
Express 提供了一个更好的路由方式,专门用来包装路由
使用
router.js
路由文件
var router = express.Router()
router.get('/students/new', function(req, res){ res.render('new.html') }) router.get('/students/edit', function(req, res){ })
module.exports = router
|
app.js
引用路由
var router = require('./router')
app.use(router)
|
使用
静态服务
当我们直接访问/public
中的文件时候,是无法直接访问的,则需要express.static
来进行释放文件,以来提供静态资源服务
app.use('/public/', express.static('./public/'))
app.use(express.static('./public/'))
app.use('/pub/',express.static('public')) app.use('/pub/aa/',express.static('public'))
|
在Express中配置使用art-template
模板引擎
安装
npm install --save art-template npm install --save express-art-template
|
配置
- 配置使用 art-template 模板引擎
- 第一个参数表示当以.art结尾的文件的时候,使用 art-template模板引擎
- 需要渲染
html
文件时则可以将art
修改为html
app.engine('art', require('express-art-template'));
|
使用
- Express 为 Response 相应对象提供了一个方法:render
- render中第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件,也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
- 如果想要修改默认的 views 目录,则可以
app.set('views', render函数的默认路径)
app.get('/', function(req, res){ res.render('index.html', { title: '这是一个标题' }) })
|
如果希望修改默认的views
视图渲染存储目录,可以:
app.set('views', '/show')
|
重定向
redirect方法允许网址的重定向,跳转到指定的url并且可以指定status,默认为302方式。
格式:res.redirect([status], url);
res.redirect("https://mp.csdn.net/");
res.redirect("/");
|