起步
- 初始化
- 模板处理
路由设计
功能 | 请求方法 | 请求路径 | get参数 | post参数 |
---|---|---|---|---|
首页 | get | /students | ||
添加学生页面 | get | /students/new | ||
处理添加学生请求 | post | /students/new | name、age、gender、hobbies | |
编辑页面 | get | /students/edit | id | |
处理编辑请求 | post | /students/edit | id、name、age、gender、hobbies | |
处理删除请求 | get | /students/delete | id |
express配置及使用
1. 安装
npm install express --save
2. 引入
var express = require('express')
3. 创建服务
var app = express()
4. 使用
两种方法,推荐第二种!
4.1 配置路由
app.get('/', (req, res) => res.send('Hello World!'))
4.2 使用路由容器
// 创建 router.js 文件
// 在 router.js 文件 引入 express
var express = require('express')
// 创建路由容器router
var router = express.Router()
// 配置路由
router.get('/', function (req, res) {
res.send('hello world')
})
// 导出路由对象
module.exports = router
// 在 app.js 文件中导入路由对象
var router = require('./router/router.js')
// 在 app.js 文件中挂载路由对象
app.use(router)
art-template 配置及使用
// 1. 安装
npm install --save art-template
npm install --save express-art-template
// 2. 配置
app.engine('html', require('express-art-template'))
// 3. 使用
res.render('edit.html', { result: result })
// 4. 例子
var express = require('express');
var app = express();
// view engine setup
app.engine('art', require('express-art-template'));
app.set('view', {
debug: process.env.NODE_ENV !== 'production'
});
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'art');
// routes
app.get('/', function (req, res) {
res.render('index.art', {
user: {
name: 'aui',
tags: ['art', 'template', 'nodejs']
}
});
});
body-parser 的配置及使用
// 1. 安装
npm install body-parser
// 2. 引入
var bodyParser = require('body-parser')
// 3. 配置
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
// 3. 使用
// post 请求 :req.body
app.use(function (req, res) {
res.setHeader('Content-Type', 'text/plain')
res.write('you posted:\n')
res.end(JSON.stringify(req.body, null, 2))
})
// 4. 案例
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use(function (req, res) {
res.setHeader('Content-Type', 'text/plain')
res.write('you posted:\n')
res.end(JSON.stringify(req.body, null, 2))
})
开放静态资源
var express = require('express')
var app = express()
// 开放静态资源
app.use('/node_modules/',express.static('./node_modules/'))
app.use('/public/',express.static('./public/'))