[英]How to Pass a User object as parameter to node.js's Express api like asp.net
我正在學習node.js,我需要將一個User對象傳遞給node.js的Express api,我看到的問題文檔很少,但都涉及bodyparser 。 但我需要知道bodyparser僅是解決此問題的好方法,否則我可以將.Net / Java做為User Type數據類型發送User對象。 我需要完全按照給定的.net示例發送對象。
用戶對象
var user={
"Id":1,
"FullName":"Mr. X"
}
如果我通過ajax發送上述用戶,則ASP.NET方法將自動適合我的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發布請求->
{
"Id":1,
"FullName":"Mr. X"
}
無需使用所有鍋爐代碼來進行錯誤處理等,而是可以使用JS創建包裝函數來處理此錯誤。 看來您的使用承諾會更好。
所以之后的事情就像->
router.post('/save', handlePost((user) => userServices.Save(user)) );
對我來說,這看起來與ASP版本非常相似,並且實際上在做更多的事情,因為它實際上顯示的是/save
路由,而您沒有在ASP版本中顯示。
因此,下一步是創建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
。 甚至ok
像ASP一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.