监听的data事件没执行
来源:5-9 开发路由(处理 POSTData)
qq_慕工程417253
2019-04-21
const handleBlogRouter = require('./src/router/blog.js')
const handleUserRouter = require('./src/router/user.js')
const querystring = require('querystring')
const getPostData = (req) => {
const promise = new Promise ((resolve, reject) => {
if (req.method !== 'POST') {
resolve({})
return
}
if (req.headers['content-type'] !== 'application/json') {
resolve({})
return
}
let postData = ''
console.log(123)
req.on('data', chunk => {
console.log(456)
postData += chunk.toString()
console.log('data ', postData)
})
req.on('end', () => {
if (!postData) {
resolve({})
return
}
console.log('end ', postData)
resolve(
JSON.parse(postData)
)
})
})
return promise
}
const app = (req, res) => {
let url = req.url
req.path = url.split('?')[0]
// 设置传输的数据格式
res.setHeader('Content-type', 'application/json')
// 获取get参数
req.query = querystring.parse(url.split('?')[1])
// 处理 post 数据
getPostData(req).then(postData => {
console.log(postData)
req.body = postData
const blogData = handleBlogRouter(req, res)
if (blogData) {
res.end(
JSON.stringify(blogData)
)
return
}
const userData = handleUserRouter(req, res)
if (userData) {
res.end(
JSON.stringify(userData)
)
return
}
// 未命中的路由 返回404
res.writeHead(404, {"Content-type":"text/plain"})
res.write("404 Not Found
")
res.end()
})
}
module.exports = app
写回答
1回答
-
qq_慕工程417253
提问者
2019-04-21
postman没传参的问题
012019-04-21
相似问题