Я новичок в Node.JS, исходящем из фона Java. Я использую 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 из объекта на маршруте. Весь смысл этого класса-менеджера будет для объектов fectch и return.
Возвращает 'user' объект кто? Вы не можете передавать собственные объекты JS другим процессам или в результате HTTP-вызова. Вы можете выбрать определенные атрибуты из этого объекта и вернуть их только как JSON (это текстовый формат), но вы не можете вернуть объект JS другому процессу или в результате HTTP-вызова. Этот объект JS принадлежит только этому экземпляру Javascript V8, работающему в node.js, и работает только в этом контексте. Вы не можете выйти за пределы этой среды V8. – jfriend00
Если ваша база данных 'userWare' имеет уникальный идентификатор для каждого пользователя, возможно, вам просто нужно вернуть идентификатор как JSON или как строку, а затем вызывающий API может использовать этот идентификатор в последующих вызовах API для идентификации этого конкретного пользователя. Обычно такие проблемы решаются. Объект в базе данных сводится к некоторому уникальному ключу, и этот ключ - это обмен между процессами, и если вам нужно вернуться к этому конкретному пользовательскому объекту при некотором подзадачном вызове API, вы можете использовать этот ключ, чтобы быстро получить соответствующий объект пользователя. – jfriend00