Javascript 如何将用户对象作为参数传递给node.js的Express api,如asp.net
我正在学习node.js,我需要将一个用户对象传递给node.js的Express api,关于我的问题,我看到的文档很少,但都是关于bodyparser的。但是我需要知道bodyparser是解决这个问题的唯一好方法,或者我可以像.Net/Java那样将用户对象作为对象类型数据类型发送。我需要完全按照给定的.net示例发送对象 用户对象 ASP.NET方法 如果我通过ajax发送上述用户,它将自动与我的asp.net方法的参数user u匹配Javascript 如何将用户对象作为参数传递给node.js的Express api,如asp.net,javascript,asp.net,node.js,Javascript,Asp.net,Node.js,我正在学习node.js,我需要将一个用户对象传递给node.js的Express api,关于我的问题,我看到的文档很少,但都是关于bodyparser的。但是我需要知道bodyparser是解决这个问题的唯一好方法,或者我可以像.Net/Java那样将用户对象作为对象类型数据类型发送。我需要完全按照给定的.net示例发送对象 用户对象 ASP.NET方法 如果我通过ajax发送上述用户,它将自动与我的asp.net方法的参数user u匹配 public IHttpActionResult
public IHttpActionResult Save(User u)
{
return Ok(_userService.Save(u));
}
Js
好的,使用上面的例子 假设我们有JSON post请求->
{
"Id":1,
"FullName":"Mr. X"
}
使用JS,您可以创建一个包装器函数来处理这个问题,而不是使用所有用于错误处理等的锅炉代码。从你的使用承诺来看,这甚至更好
所以我们追求的是->
router.post('/save', handlePost((user) => userServices.Save(user)) );
对我来说,这看起来与ASP版本非常相似,事实上它在显示路由/保存时做得更多,而您在ASP版本中没有显示路由/保存
所以下一步是创建handlePost函数
function handlePost(func) {
return (req, res) => {
func(req.body).then((results) => {
res.send(results);
}).catch((reason) => {
res.status(500).send(reason);
});
}
}
希望这就是你想要的
当然,如果使用承诺,handlePost可以重新用于您的所有请求,事实上不仅仅是Post请求,所以我真的应该将其命名为handleReq,。甚至可以像ASP一样正常。它的发音是you zer not ooze er,所以它应该是一个用户,而不是一个用户……谢谢@musefan,编辑。现在还不清楚到底是什么问题。。。您是说当您传递第一个示例中定义的对象时,node.js代码不起作用吗?你有具体的错误吗?或者你能描述一下实际发生的不正确的事情吗?这可能有助于准确显示您试图分配给parami的内容。如果没有任何错误,我需要知道将对象用户传递给node.js的最佳方法。谢谢,如果它起作用了,那么我觉得这个很好。听起来你好像在试图预测一个将来可能永远不会发生的问题,你不喜欢这种方法吗?那么userServices.Save并没有返回一个承诺。
router.post('/save', handlePost((user) => userServices.Save(user)) );
function handlePost(func) {
return (req, res) => {
func(req.body).then((results) => {
res.send(results);
}).catch((reason) => {
res.status(500).send(reason);
});
}
}