我是nodejs和express的新手。我正在尝试使用body-parser从html页面获取POST值。我试着遵循了SO中的几个建议,但无法让它对我起作用。
下面是代码。任何指针都将受到高度赞赏。提前谢谢。
Server.js
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var Subscribe = require('./models/subscribe');
mongoose.connect('CREDENTIALS');
var app = express();
app.use(bodyParser.json(), bodyParser.urlencoded({ extended: false }));
var port = 3000;
var router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'Test...' });
});
var subscribeRoute = router.route('/subscribe');
subscribeRoute.post(function(req, res) {
var subscribe = new Subscribe();
subscribe.email = req.body.email_notify;
console.log(subscribe);
subscribe.save(function(err) {
if (err)
res.status(500).send(err);
res.status(200);
});
});
app.use('/api', router);
app.listen(port);index.html
<form action="http://localhost:3000/api/subscribe/" method="POST" enctype="application/json">
<input type="text" onfocus="if (this.value=='E-mail Address') this.value = ''" onblur="if (this.value=='') this.value = 'E-mail Address'" value="E-mail Address" id="email_notify" name="email_notify" />
<button id="notify_me" ontouchstart="">Notify Me!</button><br/>
</form>谢谢Sujith
发布于 2015-12-05 00:21:50
用<input type='submit'>代替<button>,并从表单中删除enctype。
此外,在Chrome中打开开发人员工具,网络选项卡,并检查请求是否已发送到服务器
发布于 2015-12-05 00:34:07
改变这一点
app.use(bodyParser.json(), bodyParser.urlencoded({ extended: false }));到这个
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));https://stackoverflow.com/questions/34092699
复制相似问题