我有一个简单的表单,它通过POST方式将数据发送到我的Node.JS服务器,使用Express框架。这是表单:
<form method="post" action="/sendmessage">
<div class="ui-widget">
<input type="text" id="search" data-provide="typeahead" placeholder="Search..." />
</div>
<textarea id="message"></textarea>
</form>
ui-widget 和 input 与 Twitter 的自动完成库 typehead 相关。以下是我在服务器上处理 POST 请求的方式:
app.post('/sendmessage', function (req, res){
console.log(req.body);
usermodel.findOne({ user: req.session.user }, function (err, auser){
if (err) throw err;
usermodel.findOne({ user: req.body.search }, function (err, user){
if (err) throw err;
var message = new messagemodel({
fromuser: auser._id,
touser: user._id,
message: req.body.message,
status: false
});
message.save(function (err){
if (err) throw err;
res.redirect('/messages')
})
});
});
});
控制台显示'{}',然后出现带有req.body.search的错误,因为search未定义。我不知道这里发生了什么问题,这与typehead输入无关。有没有解决这个问题的方法...?
提前感谢!
req.body
的输出情况。如果req.body
为空,则我会查看您传递给/sendmessage
的内容或方式存在什么问题。 - germainelolname="search"
属性。 - JohnnyHK