2016-07-05 1 views
2

Express, EJS 및 Node를 사용하여 thenewboston에서 this 튜토리얼을 진행할 것입니다. 내 코드는 거의 마지막에 모듈 (module.exports = send 대신 app.listen을 사용하는 것)을 제외하고는 거의 똑같이 설정됩니다.Express 오류 - TypeError : express.Router가 함수가 아닙니다.

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 routes = 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', 'ejs'); 

// uncommet after placing your favicon in /public 
//app.use(favicon(__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('/', routes); 
app.use('/users', users); 

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

app.listen(3000, function(){ 
    console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 
}); 

내하는 index.js 파일입니다 : 여기

var router = express.Router(); 
       ^
TypeError: express.Router is not a function 

내 app.js입니다 : 내 노드 프로그램을 실행하려고하면

나는 다음과 같은 오류가

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 
}); 

module.exports = router; 

이전에 비슷한 지침서를 작성 했으므로이 문제가 발생하지 않았습니다. 이걸 일으킬 수있는 어떤 생각?

+0

'express'를 설치 했습니까? 'package.json'을 확인하십시오. – Kairat

+0

예. 저기에있어. 이 프로그램은 index.js 파일이 다음과 같은 경우에 정상적으로 실행되었습니다. exports.index = function (req, res) { res.render ('index', {title : 'Express'}) }; –

+0

@crash springfield, 혹시이 질문에 대한 대답을 얻었습니까? 나는 같은 문제를 가지고있다. – Les

답변

0

시도해보십시오 - express/lib/application.js의 샘플 코드에서 얻으십시오.

var http = require('http') ,https = require('https) ,express = require('express')

var app = express()

나를 위해 일했다. 대부분 http/https 중 하나만 필요합니다.

관련 문제