我的“EJS”文件中有一个Bootstrap表单,底部有“SAVE”按钮。 当我按“保存”时,我想将字段中的数据存储到我的数据库中。
问题是在post上执行的函数 - “req.body”为空。 所以存在一个逻辑问题,但我无法得到确切的问题。
这是我的代码:
EJS
<div id = "container">
<form class="form-horizontal" role="form" method="post">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">First Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputFirstName3" placeholder= <%= user.profile.name %> >
</div>
</div>
.
.
.
<div class="form-group">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
APP.JS
app.get("/edit", permissions.requireActiveRole, edituserprofile.editMyProfile);
app.post("/edit", permissions.requireActiveRole, edituserprofile.saveChanges);
saveChanges()函数在单独的JS文件中
exports.saveChanges = function (req, res) {
console.log(req.body); //// logs {}, data from ejs fields should be here!
}
我希望我的问题很明确,非常感谢!
答案 0 :(得分:2)
您的<input>
需要name
属性:
<input type="text" name="firstName" class="form-control" id="inputFirstName3" placeholder= <%= user.profile.name %> >
顺便说一下,我还会在任何扩展变量周围加上引号。