2013-05-28 65 views
0

嗨,我正在關注peepcode nodejs截屏,現在我有一個渲染登錄窗體的問題。我的代碼如下:Nodejs無法獲得/登錄

app.js

/** 
* Module dependencies. 
*/ 
require('coffee-script'); 
var express = require('express') 


    , http = require('http') 
    , path = require('path'); 

var app = express(); 

// all environments 
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'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

require('./apps/authentication/routes'); 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

和我的,我有認證文件夾內的路線。代碼如下:

routes.coffee

routes = (app) -> 

    app.get '/login', (req,res) -> 
    res.render "views/login", 
     title: 'Login' 
     stylesheet: 'login' 

module.exports = routes 

咖啡腳本縮進一切工作正常,但我有一個錯誤,當我在瀏覽器導航localhost:3000/login。它顯示的錯誤是Cannot GET /login。我在哪裏錯了?

回答

1

在app.js,改變這一行:

require('./apps/authentication/routes'); 

這樣:

require('./apps/authentication/routes')(app); 

正在發生的事情是,在routes.coffee,要導出的功能,需要一個單一的arg,'app',然後在您的應用程序對象上設置路線。你需要稱它爲通過應用程序作爲參數。