我为我的项目设置了passportjs。我使用passportConfig变量将护照配置文件导入app.js。我希望在app.js中运行passportConfig文件。
// app.js file
var mysql = require('mysql'),
passport = require('passport'),
passportConfig = require('./passportConfig.js');
// Database
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test'
});
>
就在这里我不明白为什么我需要再次要求mysql和护照。因为我已经在app.js中做过了。当我删除需要时出现错误,告诉我要包含它们。
// passport config file
// Require
var mysql = require('mysql');
var passport = require('passport'),
// Database
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test'
});
module.exports = function(passport) {
// Passport Session - persistent login sessions
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
var query = 'SELECT * FROM `users` WHERE `id` = ?';
var inserts = [id];
query = mysql.format(query, inserts)...
这是否意味着即使我在app.js中需要该文件,也没有在app.js中运行passportConfig文件?这是我能想到的唯一原因
答案 0 :(得分:2)
当你“需要”一个模块时。 Node.js包装每个模块。什么是包装:
环绕:为文件提供私有范围。这就是
require
和module
对象在我们需要的每个文件中都是本地的原因。
这就是为什么我认为您需要在两个文件中加入passport
和mysql
。