如何将消息传递给passportjs中的客户端

目前,我得到的问题是从nodejs获取消息 在这里输入图像说明

在客户端(与nodejs分开)中,

'use strict'; angular.module('app').controller('RegisterCtrl', function ($scope, alert, $auth) { $scope.submit = function () { $auth.signup({ email: $scope.email, password: $scope.password }) .then(function (res) { alert('success', 'Account Created!', 'Welcome, ' + res.data.user.email + '! Please email activate your account in the next several days.'); }) .catch(function (err) { alert('warning', 'Unable to create account :(', err.message); }); }; }); 

虽然,在Nodejs护照上,我收到错误“已经收到电子邮件”,但是它不能将这个消息传递到客户端,客户端只收到401(未授权)。 我也安装连接闪光灯和设置

 app.post('/auth/register', passport.authenticate('local-register', { failureFlash : true // allow flash messages }), function (req, res) { emailVerification.send(req.user.email, res, req); createSendToken(req.user, res); }); 

但还是没有运气。 我怎样才能得到这个消息? 谢谢

Flash消息被设置为req并且不会在HTTP响应中返回。 如果你要在服务器上呈现HTML,你可以使用它,但它不适用于AJAX。

虽然我不知道为什么你使用authentication库来处理注册,你可以通过自定义callback来实现这一点。 一个未经testing的例子:

 app.post('/auth/register', function(req, res, next) { passport.authenticate('local-register', function(err, user, info) { if (err) return next(err); if (user) { req.logIn(user, function(err) { if (err) return next(err); emailVerification.send(req.user.email, res, req); createSendToken(req.user, res); }); // Register failed, flash message is in info } else { res.status(400).json(info); } })(req, res, next); });