Express
安装
- 方式一:安装express-generator
安装脚手架 npm install -g express-generator
创建项目 express express-demo
安装依赖 npm install
启动项目 node bin/www
- 方式二:从零搭建自己的express应用结构; Express安装
npm init -y
基本使用
js
const express = require('express')
// 1.创建express的服务器
const app = express()
// 客户端访问URL: /login和/home
app.post('/login', (req, res) => {
// 处理login请求
res.end('登录成功, 欢迎回来~')
})
app.get('/home', (req, res) => {
res.end('首页的轮播图/推荐数据列表~')
})
// 2.启动服务器, 并且监听端口
app.listen(9000, () => {
console.log('express服务器启动成功~')
})中间件
js
// 普通中间件 app.use
app.use((req, res, next) => {
console.log('normal middleware')
})
// 注册路径匹配的中间件
app.use('/home', (req, res, next) => {
console.log('match /home middleware')
res.end('home data')
})
// 注册中间件: 对path/method都有限制
app.get('/home', (req, res, next) => {
console.log('match /home get method middleware')
res.end('home data')
})应用中间件
参数解析
js
app.use(express.json()) // 解析客户端传递过来的json
app.use(express.urlencoded({ extended: true })) // 解析客户端传递过来的urlencoded文件上传
js
const multer = require('multer')
// 应用文件上传第三方的中间件
const upload = multer({
// dest: './uploads'
storage: multer.diskStorage({
destination(req, file, callback) {
callback(null, './uploads')
},
filename(req, file, callback) {
callback(null, Date.now() + '_' + file.originalname)
}
})
})
// 编写中间件
// 上传单文件: single方法
app.post('/avatar', upload.single('avatar') , (req, res, next) => {
console.log(req.file)
res.end('文件上传成功~')
})
// 上传多文件:
app.post('/photos', upload.array('photos'), (req, res, next) => {
console.log(req.files)
res.end('上传多张照片成功~')
})路由
js
const express = require('express')
// 创建app对象
const app = express()
// 1.创建路由对象
const userRouter = express.Router()
// 2.定义路由对象中的映射接口
userRouter.get('/', (req, res, next) => {
res.json('用户列表数据')
})
// 让路由生效
app.use('/users', userRouter)静态资源服务器
js
const express = require('express')
// 创建app对象
const app = express()
// 内置的中间件: 直接将一个文件夹作为静态资源
app.use(express.static('./uploads'))
app.use(express.static('./build'))