2013-05-28 4 views
0

Привет, я следую за peepcode nodejs screencast, теперь у меня возникли проблемы с оформлением формы входа. Мой код является следующим: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', а затем настраивает маршрут на вашем объекте приложения. Вы должны назвать это передающим приложением как аргумент.

Смежные вопросы