我正在尝试使用passport.js和本地护照进行基本的用户名/密码验证.
虽然failureRedirect完全按照它应该执行的操作(重定向到指定页面),但successRedirect对其指定页面的请求保持挂起状态,并在一段时间后返回"空响应".
http://www.deviantpics.com/VdG
正如您在此图片中所看到的那样,当它请求仪表板时,它表示它的大小为0B,但是当我继续使用该仪表板而没有重定向时它表示它有1.6B.
我遍布Stackoverflow,我找不到能帮到我的答案.
在我疯狂之前,你能检查我的代码并提出一些建议.
这是护照加载代码
//set expression
var expressSession = require('express-session');
app.use(expressSession({
secret: credentials.session.secret
}));
//set passport
var passport = require('passport');
var localStrategy = require('./strategies/auth/local.js');
passport.use('local', localStrategy);
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)
routes.js
module.exports = function(app){
module.exports = function(app) {
//main
app.get('/', main.home);
app.get('/login', main.login);
app.get('/signup', main.signup);
app.post('/login', auth.loginLocal);
app.post('/signup', main.checkSignup);
//user
app.get('/user/dashboard', user.dashboard);
app.get('/user/addmemory', user.addMemory);
app.get('/user/memory', user.memory);
Run Code Online (Sandbox Code Playgroud)
登录功能
exports.loginLocal = passport.authenticate('local', {
successRedirect: …Run Code Online (Sandbox Code Playgroud) 我的代码有一个元素数组,如下所示:
element: { fromX: { id: ... } , toX: { id: ... } }
Run Code Online (Sandbox Code Playgroud)
要求是将所有fromXid 放入一个数组中,并将所有toXid 放入另一个数组中。
有几种不同的方法,例如分别使用foreach、reduce、 迭代,但我正在寻找一种最佳的功能方法来通过一个映射返回两个数组?