我是來自Java背景的Node.JS的新手,我使用express來構建這個Rest API。我想要做的是建立一個經理的概念。我要尋找一個在下面的返回用戶對象的一個優雅的方式:從Node.JS中的中間件功能返回對象
用戶路線:user.js的
router.get('/find/:email', function(req, res, next){
userWare.findUserByEmail(req, res, next)
});
中間件/經理:usermiddleware.js
module.exports = {
findUserByEmail: function(req, res, next) {
models.core_user.find({
where:{
email: req.params.email
}
}).then(function(user){
res.json(user)
}, function(err){
res.status(404).json(err);
});
},
}
所以在這上面的函數我想返回用戶對象的路線,而不是JSON。這樣我就可以從路由中的對象創建json。這個經理類的全部重點將是對象並返回。
返回了'user'對象是誰?您不能將本機JS對象傳遞給其他進程或作爲HTTP調用的結果。您可以從該對象中選擇某些屬性並僅返回JSON(這是一種文本格式),但不能將JS對象返回給某個其他進程或作爲HTTP調用的結果。該JS對象只屬於在node.js中運行的Javascript V8引擎的這個實例,並且只能在該上下文中運行。你不能把它放在V8環境之外。 – jfriend00
如果您的'userWare'數據庫具有每個用戶的唯一ID,則可能只需將ID作爲JSON或作爲字符串返回,然後API的調用方就可以在隨後的API調用中使用該ID來標識特定用戶。這通常是如何解決這樣的問題。數據庫中的一個對象被簡化爲某種唯一鍵,這個鍵就是進程之間交換的內容,如果你需要在一些次要的API調用中返回那個特定的用戶對象,你可以使用這個鍵快速獲得相應的用戶對象。 – jfriend00