MrM*_*ado 5 forms post node.js express
我有一个简单的表单,它使用Express将POST数据发送到我的Node.JS服务器.这是形式:
<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>
Run Code Online (Sandbox Code Playgroud)
ui-widget和输入与typehead来自Twitter的自动完成库相关联.这就是我在服务器中处理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')
})
});
});
});
Run Code Online (Sandbox Code Playgroud)
控制台显示"{}",然后显示错误req.body.search,因为search未定义.我不知道这里发生了什么,这不是与typehead输入相关的问题.解决这个问题的任何方法......?
谢谢你的进步!
Ari*_*rad 20
req.body 由名称和价值组成.
name="search"在搜索框中添加,然后重试.
您还必须使用express/connect.bodyParser()中间件,感谢Nick Mitchinson!
wes*_*bos 11
我遇到了这个问题,事实证明我正在使用app.use(express.bodyParser());它,但它是在我使用的代码之后.提升它解决了这个问题.
小智 6
对快递4将是这一个.(请注意,这不会解析multipart/uploads).
app.use(bodyParser.urlencoded({extended: true}));
Run Code Online (Sandbox Code Playgroud)
如果你想接收json输入
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19467 次 |
| 最近记录: |