邮递员中的表格数据将需求主体清空为空"/>
使用邮递员中的表格数据将需求主体清空为空
当我通过这样的表单数据使用postman
发布请求时,在我的快速js中出现了空对象:
router.post('/course', async(req, res) => {
console.log(req.body) // console logs empty object {}
try{
const course = new Course({
name : req.body.name,
thumbnail : 'placeholder'
})
uploadImg(req, res, function (err) {
if (err) {
console.log(err.message);
// An error occurred when uploading
return
}
console.log('Everything went fine');
// Everything went fine
})
}catch(e){
res.status().send()
}
})
并且我不能使用multer来解析数据,因为首先我想通过猫鼬生成一个id,然后我像上面那样使用multer例如,我不能像:
router.post('/course', upload.single(), async(req, res) => {
console.log(req.body) // console logs empty object {}
try{
const course = new Course({
name : req.body.name,
thumbnail : 'placeholder'
})
uploadImg(req, res, function (err) {
if (err) {
console.log(err.message);
// An error occurred when uploading
return
}
console.log('Everything went fine');
// Everything went fine
})
}catch(e){
res.status().send()
}
})
它给出错误:意外字段。
所以有什么方法可以先获取我的req.body数据,这样我就可以生成我的猫鼬ID,然后上传图像
//index.js
const express = require('express')
var multer = require('multer');
require('./db/mongoose')
const userRouter = require('./routers/user')
const taskRouter = require('./routers/task')
const courseRouter = require('./routers/course')
var bodyParser = require('body-parser');
const app = express()
const port = process.env.PORT || 3000
// // for parsing application/json
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.json())
app.use(express.static('public'))
app.use(userRouter)
app.use(taskRouter)
app.use(courseRouter)
app.listen(port, () => {
console.log('connected succefully')
})
回答如下:如果使用的是express
版本> = 4.16您可以确定删除body-parser
库。您也可以从package.json中删除express`4.16的新功能之一是将bundle express与body-parser捆绑在一起。如果是这种情况,请删除带有body-parser lib的行,并仅使用express附带的body解析器:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
如果是还可以在您的package.json中安装body-parser。版本<= 4.16
const bodyparser = require('body-parser')
...
app.use(bodyparser.json())
app.use(bodyparser.urlencoded({extended: true}))
您应该坚持使用,但不能混用。
更多推荐
使用邮递员中的表格数据将需求主体清空为空
发布评论