我正在编写一个基于 mudule express 的 NodeJS 应用程序。以下是我的 app.js 的重要部分:
var express = require('express')
, routes = require('./routes')
, passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
var app = module.exports = express.createServer();
var ab = 'this is a test!';
// Configuration
app.configure(function(){
...
// Routes
app.get('/', routes.index);
app.listen(3000);
Routes.index - 是一个控制器,在请求“/”时执行。这是代码:
exports.index = function(req, res){
passport.serializeUser(function(user, done) {
done(null, user.id);
});
...
res.render('index.ejs', {
title: ab
})
};
从技术上讲,index.js - 是单独的文件,位于“/routes”文件夹中。所以,当我启动我的应用程序时,它崩溃了,因为找不到护照变量,在主应用程序中声明。此外,ab 也找不到,但是它被声明了。如果我在 index.js 中重新声明变量,JS 将为我创建新对象。如何在我的应用程序的每个模块中使用我的变量?我浏览了一些关于 SO 的主题,但无法理解 - 这是一个常见问题还是我的应用程序的结构错误?谢谢!