gpt4 book ai didi

javascript - 如何将 User 对象作为参数传递给 node.js 的 Express api(如 asp.net)

转载 作者:行者123 更新时间:2023-12-03 03:20:43 24 4
gpt4 key购买 nike

我正在学习node.js,我需要将 User 对象传递给node.js 的 Express api,我看到的关于我的问题的文档很少,但都是关于bodyparser的。但我需要知道 bodyparser 是否只是这个问题的良好解决方案,或者我可以将用户对象作为 .Net/Java 所做的对象类型数据类型发送。我需要像给定的 .net 示例一样发送对象。

用户对象

var user={
"Id":1,
"FullName":"Mr. X"
}

ASP.NET方法如果我通过 ajax 发送上述用户,它会自动适合我的 asp.net 方法的参数(用户 u)。

public IHttpActionResult Save(User u)
{
return Ok(_userService.Save(u));
}

Node.Js

var req=require('body-parser');
router.post('/save', function (req, res) {
var user=req.body.User;
return userServices.Save(user).then(function (results) {
res.send(results);
}).catch(function (reason) {
res.send(reason);
});
});

最佳答案

好的,使用上面的例子。

假设我们有 JSON post 请求 ->

{
"Id":1,
"FullName":"Mr. X"
}

使用 JS,您可以创建一个包装函数来处理此问题,而不是使用所有用于错误处理等的锅炉代码。看来您的使用 promise 这甚至更好。

所以我们之后的事情是这样的 ->

router.post('/save', handlePost((user) => userServices.Save(user)) );

对我来说,这看起来与 ASP 版本非常相似,而且实际上做得更多,因为它实际上显示了 ASP 版本中没有显示的路线 /save

所以下一阶段是创建 handlePost 函数..

function handlePost(func) {
return (req, res) => {
func(req.body).then((results) => {
res.send(results);
}).catch((reason) => {
res.status(500).send(reason);
});
}
}

希望这就是您所追求的。

如果使用 Promise,handlePost 当然可以重复用于所有请求,事实上不仅仅是 Post 请求,所以我真的应该将其命名为 handleReq。甚至像 ASP 那样ok

关于javascript - 如何将 User 对象作为参数传递给 node.js 的 Express api(如 asp.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46582296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com