AJAX和节点JS/Express邮件不发送或接收数据
问题描述:
我是新来的节点,我试图使用app.post,一切工作正常,包括控制台日志每当执行操作,但它没有收到发送的数据由来自main.js的AJAX提供。AJAX和节点JS/Express邮件不发送或接收数据
这里是main.js的剪断它发送它:
$.ajax({
type: 'POST',
data: '{"title":'+ this.messageInput.value +'}',
url: 'http://localhost:3000/send'
});
这里是我的config.js应接收的数据:
app.post('/send', function(req, res) {
console.log(req.body);
console.log('Send button clicked');
});
我使用bodyParser用快递。所以这就是我使用req.body的原因。当我控制日志req.body时,我得到未定义。当我控制日志请求时,我得到一个数据列表,但不是我发送的。
我希望有人能帮助!
答
这很好,你正在使用body-parser,但你有没有在你的应用程序中定义一个JSON解析器?
您没贴所有的代码,从而添加这个,如果你不已经拥有了它:
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// create application/json parser --> This is probably what you are missing
var jsonParser = bodyParser.json()
// POST /api/users gets JSON bodies --> Note how we use a jsonParser in our app.post call
app.post('/send', jsonParser, function (req, res) {
console.log(req.body);
console.log('Send button clicked');
})
另外,代替人工构建您的数据,只需创建一个对象,并把它(记住JSON是短期的 - Java脚本对象符号)
var myData = {};
myData.title = this.MessageInput.value;
然后在你的Ajax代码,只需使用myData
:
$.ajax({
type: 'POST',
data: myData,
url: 'http://localhost:3000/send'
});
注意:本示例的大部分内容都是从body-parser Github Page中直接获取的,它有大量有据可查的示例,因此如果您不确定如何使用该模块,请查看
非常感谢!我错过了jsonParser。你不知道我花了多少时间在这个笑声上。 –
很高兴为您提供帮助,请将此标记为将来参考的正确答案 –