我一直无法找到这个问题的答案。在使用 NodeJS、Express 和 Express Bodyparser(以及我的 MEAN 堆栈的其余部分)时,我遇到了隐藏和禁用字段的问题:提交表单时它们不会出现在 req.body 对象中。
如果我理解正确的话,express 的 bodyparser 方面实际上取自另一个项目。无论如何,我还没有真正弄清楚为什么要删除这些字段或如何阻止这种情况发生。我怀疑它可能与方法覆盖有关,但启用/禁用它对相关字段没有影响。
所以.. 对于我自己和未来的谷歌人:这里发生了什么?
根据要求,这是一些代码:JADE:
form(action="/admin/users/edit", method="post", ng-submit='registerUser($event)', name='form', novalidate)
.row(ng-show="ifweareupdating")
label(for="_id") _id:
input(type="hidden", id="_id", name="_id", ng-model="newUser._id")
input(type="text", id="_notHiddenId', name="_notHiddenId", ng-model="newUser._id")
表示:
app.post("/admin/users/edit", pass.ensureAdmin, userRoutes.editUserPost);
用户路线:
exports.userRoutes.editUserPost = function(req,res,next) {
console.log(req.body._id) // logs undefined
console.log(req.body._notHiddenId) // logs actual id
}