NodeJS要求模块不工作

时间:2017-08-29 15:28:13

标签: node.js

我为我的项目设置了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文件?这是我能想到的唯一原因

1 个答案:

答案 0 :(得分:2)

当你“需要”一个模块时。 Node.js包装每个模块。什么是包装:

  

环绕:为文件提供私有范围。这就是requiremodule对象在我们需要的每个文件中都是本地的原因。

source

这就是为什么我认为您需要在两个文件中加入passportmysql