2017-02-16 4 views
0

私はちょうどnodejs、expressjsとcoffeescriptを経由しています。私のコードは、ノードjs app変数はcoffeescriptで定義されていません

app.js

require('coffee-script').register(); 
var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

//var index = require('./routes/index'); 
//var users = require('./routes/users'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

//app.use('/', index); 
//app.use('/users', users); 
require('./apps/authentication/routes')(app); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handler 
app.use(function(err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

    // render the error page 
    res.status(err.status || 500); 
    res.render('error'); 
}); 

module.exports = app; 

である私のCoffeeScriptのコードです。私はプロジェクトを実行すると

routes = (app) -> 

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

module.export = routes 

routes.coffeeは、私は問題次直面しています。

app.get("/login", function(req, res) { 
^

ReferenceError: app is not defined 

私はアプリ変数が定義されていないのに対し、ルートが必要な場合はアプリ変数を渡すのは誰に教えてもらえますか?

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

下に述べたように、私はCoffeeScriptのファイルから空白を削除した場合、それは例外を返すには、(...)が必要です

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

TypeError: require(...) is not a function 

おかげ

+0

あなたがコンパイルされたJavaScriptを表示することができますか?私はcoffeescriptの専門家ではありませんが、CoffeScriptが空白に敏感なので、 'routes =(app) - >'と 'app.get ... 'というのは同じインデントレベルにあります。 app'は無名関数の範囲内にありません。 – Phillip

答えて

0

下に述べたように関数ではありません最後に、私はこれを修正することができました、それはcoffeescriptの構文エラーでした。

私だけ変更

module.export 

module.exports 

のおかげで、

関連する問題