我是一个node.js和express.js新手。这个问题看似愚蠢,但我真的很困惑。
我正在尝试使用通行证配置本地策略身份验证。如官方文档所示,我们可以通过以下代码来计算此本地策略,
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
我的困惑是关于done
回调函数。当官方文档在路由处理程序中将此中间策略用作中间件时,无需为此done
回调传递function参数。
app.post('/login',
passport.authenticate('local'),
function(req, res) {
res.redirect('/');
});
因此,done
如果不提供function参数,此回调函数是否不为null?如果不是,那么该done
回调函数是什么以及该done
回调函数将发生什么过程?
done
是策略实施内部调用的一种方法。
然后您导航,你可以看到,到的一个success
/ error
/
fail
方法(同样,通过实施。有更多的选择)。每个选项可以调用的next
,在你的代码片段,其中如下:
function(req, res) {
res.redirect('/');
});
当success
被调用时,它可以将用户连接请求或做其他事情,这取决于你的需求(它看起来为options
您传递给passport.authenticate
)。如果您想确定何时next
调用,则应使用custom callback
,它会给您带来更大的灵活性。
我强烈建议您阅读源代码。
问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:
问题内容: 我正在一个网站上,我们从XML文件中获取信息。效果很好,但是现在我需要对内容进行滑动。为此,我将使用jCarousel声明它们可以通过调用回调函数来处理动态加载的内容。 但是,当我成功调用函数时,无法进行初始的ajax加载。我究竟做错了什么? 我做错什么了吗?还是我必须去一个完全不同的地方?:-) 问题答案: 使用hulabula代替hulabula()或将函数直接传递给ajax选项:
问题内容: 在此页面中,我找到了新的JavaScript函数类型: 我已经知道了什么,以及做的,但不知道什么是注定的。它是什么? 问题答案: 这是一个生成器功能。 生成器是可以退出并稍后重新输入的函数。它们的上下文(变量绑定)将在重新进入时保存。 调用生成器函数不会立即执行其主体。而是返回该函数的迭代器对象。调用迭代器的方法时,将执行生成器函数的主体,直到第一个表达式指定要从迭代器返回的值,或者使
问题内容: 我们经常看到如下: 有什么功能? 问题答案: DOCTYPE的最主要用途是在Quirks模式和Standards模式渲染之间切换浏览器。 出现此功能的原因是IE的旧版本中的“残破”渲染。人们认识到,如果Microsoft仅“修复”了IE呈现引擎,则许多现有站点将无法正确呈现。因此,它的工作方式是,如果您在页面中完全放置了_任何_有效的DOCTYPE声明,则假定您知道自己在做什么,并且浏
问题内容: 我发现某些jQuery插件在其css规则中使用“ zoom”描述符,我什至查看w3c网站,也发现它用于放大,但是我实际上如何实现呢?还是我必须定义一些视口?以及如何定义这样的视口?还是我对整个事情都错了? 有可能像这样使用它吗 问题答案: CSS规范中未包含缩放功能,但IE,Safari4,Chrome支持缩放功能(从3.5开始,您可以在Firefox中获得类似的效果)。 因此,所有浏
本文向大家介绍JSP中 操作的功能是什么?,包括了JSP中 操作的功能是什么?的使用技巧和注意事项,需要的朋友参考一下 通过此操作,您可以将文件插入到正在生成的页面中。语法看起来像这样- 与include指令不同,include指令在将JSP页面转换为servlet时插入文件,而该动作则在请求页面时插入文件。 下表列出了与include操作相关联的属性- 序号 属性和说明 1 page 要包含的页