【发布时间】:2019-03-13 01:50:23
【问题描述】:
我正在 Node.js 学习 async/await 来制作一个安静的 api,但我在 PUT 和 PATCH 方法中遇到了问题,对于 req.body,它无法显示我想要的数据
这里是代码:controllers/users
replaceUser: async (req, res, next) => {
//enforce that req.body must contain all the fields
const { userId } = req.params;
const newUser = req.body;
// const result = await User.findByIdAndUpdate(userId, newUser, {new: true}).exec();
// console.log(result)
console.log(newUser)
console.log(userId)
// res.status(200).json(result);
// console.log(userId, newUser)
},
这个路由器代码:
router.route('/:userId')
.get(UsersController.getUser)
.put(UsersController.replaceUser)
.patch(UsersController.updateUser)
当我启用 mongoose 调试时,只有findone 功能处于活动状态,并且此方法适用于GET 和POST。
我使用:
"body-parser": "^1.18.3",
"express": "^4.16.3",
"express-promise-router": "^3.0.3",
"mongoose": "^5.3.1",
我已经在我的 app.js 中设置了 bodyparser 中间件.. 但仍然不适用于 PATCH 和 PUT 方法:(
请帮助我。我被困住了。谢谢你
【问题讨论】:
-
对不起,我看错了你的代码......你在使用 expressjs 吗?你有没有包括身体解析器? stackoverflow.com/questions/11625519/…
-
是的,我已经安装了一个body-parser..抱歉信息不完整
-
@boogeywoogy 你能记录下
req.params和req.body的值吗 -
这很酷@boogeywoogy - 现在只是让两个答案都变得多余了:p
-
在这种情况下,问题可能出在客户端代码中
标签: javascript node.js api async-await