Node.js (Express API): req.body.myobject未定义,无法工作
Node.js (Express API): req.body.myobject is undefined and not working
我有我的服务器端在NodeJS (ExpressJS)它实现了一个POST方法,应该得到我从客户端发送的对象和做的事情:
router.route('/email')
// create a mail (accessed at POST http://localhost:8080/api/email)
.post(function(req, res) {
var email = req.body.email;
// do things with email...
// but it's complaining because it says it's 'undefined'
});
req.body.email
应该是JSON对象,结构如下:
{"destinatary": "my@example.com", "subject": "mysubject", "message": "mymessage"}
我已经实现了一个非常简单的web客户端使用jQuery来测试我的API,其中AJAX调用它是这样做的:
function sendEmail(email) {
$.post(MYAPP.service_uri+"/email",
email,
function(data, status){
alert("Data: " + data + "'nStatus: " + status);
});
}
在客户端,email
是一个对象,所以它不是undefined
…但是我每次都在服务器端得到以下错误:
TypeError: Cannot read property 'destinatary' of undefined
因为您没有发送任何名为email
的内容-您附加了一个变量名为email
的对象
修复AJAX调用,你可以这样做:
$.post(MYAPP.service_uri+"/email",
{email: email}, //OBJECT, KEYVAL PAIR
function(data, status){
alert("Data: " + data + "'nStatus: " + status);
}
);
原始代码中的对象将存储在纯req.body
中-而不是req.body.email
如果您不想修复AJAX调用,您可以修复服务器:
router.route('/email')
// create a mail (accessed at POST http://localhost:8080/api/email)
.post(function(req, res) {
var email = req.body;
});
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- Node.js (Express API): req.body.myobject未定义,无法工作