#node.js #express #mongoose #dust.js #kraken.js
#node.js #экспресс #mongoose #dust.js #kraken.js
Вопрос:
Я следовал примеру passportjs в krakenjs. https://github.com/krakenjs/kraken-examples/blob/master/with.passport/lib/auth.js#L104
вот фрагменты кода, которые я взял из примера.
exports.injectUser = function() {
return function injectUser(req, res, next) {
if (req.isAuthenticated()) {
res.locals.user = req.user;
}
next();
};
};
когда я пытался выполнить {user} , он выводит все поля в объекте user, но когда я делаю {user.fullname}, он выводит пустое значение.
если я изменю код на приведенный ниже,
exports.injectUser = function() {
return function injectUser(req, res, next) {
if (req.isAuthenticated()) {
res.locals.user = JSON.parse(JSON.stringify(req.user));
}
next();
};
};
Он отлично работает, когда я делаю, {user.fullname} . Есть идеи, почему dustjs не может проанализировать объект mongoose?
Я попытался проверить, какой тип экземпляра объекта, и он сказал [Object object] . Но это не сработает, если я явно не использую JSON.stringify и JSON.parse.
Любое рекомендуемое решение или объяснение, почему это происходит?
Комментарии:
1. Приведенный выше репозиторий примеров устарел в пользу отдельного репозитория для каждого примера. Новая ссылка будет выглядеть следующим образом: github.com/krakenjs/kraken-example-with-passport/blob/master /…
Ответ №1:
Нашел решение. Это проблема с библиотекой dustjs-linkedin. Я использовал 2.4.0. Когда я меняю его на 2.3.4, он работает. Надеюсь, это поможет другим.
Комментарии:
1. Большое спасибо за это — для тех, кто задается вопросом, как сделать это плавным способом: установите версию в файле «package.json» и запустите «npm update dustjs-linkedin» впоследствии!