,我發現了以下錯誤:Node.js的範圍錯誤
/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.coffee:6
app.get('/login', function(req, res) {
^
ReferenceError: app is not defined
at Object.<anonymous> (/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.coffee:6:3)
at Object.<anonymous> (/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.coffee:15:4)
at Module._compile (module.js:449:26)
at Object.require.extensions..coffee (/Users/nblavoie/Desktop/HotPie/HotPie/node_modules/coffee-script/lib/coffee-script/coffee-script.js:22:21)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/Users/nblavoie/Desktop/HotPie/HotPie/app.js:31:1)
at Module._compile (module.js:449:26)
雖然試圖通過(應用程序)變量以下要求:
/**
* Module dependencies.
*/
require('coffee-script');
var express = require('express')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
// Routes
**require('./apps/authentication/routes')(app);**
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
使用應用程序變量中以下文件:
routes = (app) ->
app.get '/login', (req, res) ->
res.render 'views/login',
title: 'Login'
stylesheet: 'login'
module.exports = routes
我知道變量作用域從一個JS文件到另一個不同。但是爲什麼下面的行:
require('./apps/authentication/routes')(app);
不通過應用程序變量?
我們可能會需要看到'(一些其他的代碼在這裏)' – voithos
我更新的代碼和堆棧錯誤。 –
我找到了一個可能的解決方案。通過刪除應用程序變量的infront,我沒有得到錯誤了。是因爲我正在改變變量範圍嗎? app = express(); –