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中直接获取的,它有大量有据可查的示例,因此如果您不确定如何使用该模块,请查看

+0

非常感谢!我错过了jsonParser。你不知道我花了多少时间在这个笑声上。 –

+0

很高兴为您提供帮助,请将此标记为将来参考的正确答案 –