私はmuduleexpressベースの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に関するいくつかのトピックを調べましたが、理解できませんでした。これは一般的な問題ですか、それともアプリの構造が間違っているだけですか。ありがとう!