“。Strategy”在这里做什么?是Node吗?是护照吗?
var LocalStrategy = require('passport-local').Strategy;
我了解“。策略”部分的所有内容。我只想知道“。策略”的作用。我已经查看了passport-local module on npm上的文档。我还检查了Passport的文档,它仅用于代码段中。没有提供解释。
我正在使用MEAN堆栈,我们正在使用Passport对用户进行身份验证。
答案 0 :(得分:0)
如果您查看passport-local
index.js
的来源,您会发现它直接和在exports.Strategy
中导出相同的内容。
在执行require('passport-local).Strategy
时,将导入exports.Strategy
中定义的导出,但是在这种情况下,实际上只是require('passport-local')
相同,因为直接从模块中导出了相同的构造函数。
如果您定义这样的模块:
var Thing = { foo: () => 'bar' };
exports = module.exports = Thing;
exports.Thing = Thing;
您可以通过多种方式使用它:
const Thing = require('./module');
console.log(Thing.foo());
有效,
const Thing = require('./module').Thing;
console.log(Thing.foo());
使用这两种导入,您实际上也可以呼叫
console.log(Thing.Thing.foo());
如果您删除了模块的exports.Thing = Thing;
部分,则
const Thing = require('./module').Thing;
不再工作。
出口经常引起混乱。您可以看一下Node docs或例如。 this answer。