node.js - NodeJS 需要模块无法工作

标签 node.js

我正在为我的项目设置passportjs。我使用 PassportConfig 变量将护照配置文件导入到 app.js 中。我希望 PassportConfig 文件在 app.js 中运行。

// 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和passport。因为我已经在 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 中运行?这是我能想到的唯一原因

最佳答案

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

Wrapping: To give the file its private scope. This is what makes both the require and module objects local to every file we require.

source

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

关于node.js - NodeJS 需要模块无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45942996/

相关文章:

javascript - Mongoose 保存失败且没有错误

javascript - 使用Browserify导入平滑滚动

javascript - 引用错误: _ is not defined when using lodash to sort json attributes in node. js

javascript - 聊天机器人 Watson Conversation Service 超时

node.js - Mongoose:它对未找到的引用有什么作用?

node.js - Websocket 传输可靠性(重新连接期间的 Socket.io 数据丢失)

javascript - 为什么 ng new newApp 生成无法解决依赖树错误

node.js - 实时应用程序 - socket.io (node.js) 的替代方案

javascript - nodejs - 检查图像是否为空白

javascript - Node JS 调用 Rest 的路由功能