1. 简介
(1)express 是一个保持最小规模的灵活的node.js web应用程序开发框架,为web和移动应用程序提供一组强大的功能
(2)使用您所选择的各种 HTTP 实用工具和中间件,快速方便地创建强大的 API。
(3)Express 提供精简的基本 Web 应用程序功能,而不会隐藏您了解和青睐的 Node.js 功能。
(4)许多 流行的开发框架 都基于 Express 构建。
2. 安装
npm install express --save
3. 搭建express服务
启动之前执行npm init 生成package.json 文件
const express = require('express')
// 创建服务
let app = express()
// 自动为public下的文件设置路由
// 自动把public下的index.html 设置为首页
app.use(express.static('public'))
// 符合指定路由触发回调函数
/*
app.get get请求时触发回调函数
app.post post请求时触发回调函数
app.use get post都触发回调函数
*/
app.get('/login', (req, res) => {
res.send('express')
})
// 监听端口
app.listen(3000)
4. 获取表单数据
<form action="/login" method="GET">
姓名: <input type="text" name='name'> <br>
籍贯: <input type="text" name='province'> <br>
<input type="submit">
</form>
(1)get
app.get('/login', (req, res) => {
// get请求参数
console.log(req.query)
res.send('login')
})
(2) post
<!--post 请求 form 表单如果不写action, 则默认提交到当前地址 -->
方法一
const express = require('express')
// 接受post数据包
const formidable = require('formidable')
let app = express()
app.use(express.static('public'))
app.post('/login', (req, res) => {
let form = new formidable.IncomingForm();
// fields 文本类的post数据
form.parse(req, (err, fileds) => {
console.log(fileds)
})
res.send('')
})
app.listen(3000)
方法二
const bodyParser = require('body-parser')
const express = require('express')
let app = express()
app.use(express.static('public'))
// 配置相关环境
app.use(bodyParser.urlencoded({
extended: false
}))
app.post('/login', (req, res) => {
// post 数据
console.log(req.body)
})
app.listen(4000)
(3) 文件上传
<form action="/login" method="post" enctype="multipart/form-data">
<!-- 添加name属性 -->
<input type="file" name='shipin'>
<input type="submit">
</form>
const express = require('express')
const formidable = require('formidable')
const path = require('path');
const fs = require('fs');
let app = express()
app.use(express.static('public'))
app.post('/login', (req, res) => {
let form = new formidable.IncomingForm();
// 指定文件保存位置
form.uploadDir = './upload'
// fields 文本类的post数据
form.parse(req, (err, fileds, files) => {
// console.log(files)
// 文件相关内容保存在files里
let extname = path.extname(files.shipin.name);
let oldName = files.shipin.path;
fs.rename(oldName, oldName + extname, (err) => {
console.log(err)
// res.send('ok')
return res.end('ok')
})
})
res.send('')
})
app.listen(3000)