node-express处理表单的接口
2024-09-08 15:41:54
写一个小接口,用postman测试接口是否可行
import express from 'express'
import config from './config'
import router from './router'
import queryString from 'querystring'
const app = express()
app.use('/node_modules', express.static(config.node_modules_path))
app.use('/public', express.static(config.public_path))
// 解析处理表单 POST 请求体中间件
app.use((req, res, next) => {
// 由于表单 POST 请求可能会携带大量的数据,所以在进行请求提价的时候会分为多次提交
// 具体分为多少次进行提交不一定,取决于数据量的大小
// 在 Node 中,对于处理这种不确定的数据,使用事件的形式处理
// 这里可以通过监听 req 对象的 data 事件,然后通过对应的回调处理函数中的参数 chunk 拿到每一次接收到的数据
// data 事件触发多少次,不一定
// 当数据接收完毕之后,会自动触发 req 对象的 end 事件,然后就可以在 end 事件中使用接收到的表单 POST 请求体
let data = ''
req.on('data', chunk => {
data += chunk
})
req.on('end', () => {
// 手动给 req 对象挂载一个 body 属性,值就是当前表单 POST 请求体对象
// 在后续的处理中间件中,就可以直接使用 req.body 了
// 因为在同一个请求中,流通的都是同一个 req 和 res 对象
req.body = queryString.parse(data)
next()
})
})
// 挂载路由容器(路由容器中组织了网站功能处理路由中间件)
app.use(router)
app.listen(3000, () => {
console.log('server is running at port 3000...')
})
import express from 'express'
// 创建一个路由容器,将所有的路由中间件挂载给路由容器
const router = express.Router()
router.get('/', (req, res, next) => {
res.render('index.html')
})
router.post('/advert/add', (req, res, next) => {
// 接口客户端提交的数据
console.log(req.body)
})
// 通过 export default 暴露的接口成员不能定义的同时直接暴露
// 最好先定义,再暴露
// export default 可以直接暴露字面量 {} 123
export default router
最新文章
- ThinkPHP 关于namespace的事儿
- unity3d拓展编辑器MenuItem的使用
- mysql获得自增字段下一个值
- PHPCMS建站经验分享
- 《实时控制软件设计》Git 基本操作练习
- php入门之表单创建和基本处理
- .net发邮件
- firebug加载不了js脚本文件问题
- 【转】使用gulp 进行ES6开发
- 微软推出了Cloud Native Application Bundles和开源ONNX Runtime
- SSL/TLS握手过程
- FFMPEG系列课程(一)打开视频解码器
- CCProxy使用说明
- public private protected default小结
- vue常见前端UI库
- 外网访问ARM嵌入式Linux系统
- Java覆盖
- inoremap nnoremap vnoremap
- Android通过DeepLink方式跳转其他App传递参数
- AVL树C++实现