2016-12-14 7 views
0

내 서버에서 node.js 익스프레스 서버가 실행 중입니다. 나는 최근에 새 서버로 이전했으며 어떻게 든 이전 코드가 작동을 멈췄습니다. 여기 Node.js 라우트가 작동하지 않음 node.js + 익스프레스 서버

는, 내가

"정의되지 않은"얻을 코드는 콘솔에 로깅 "routes.index"에

app.get('/', routes.index); 

을 깨는이 줄에 내 서버

var fs = require('fs'); 
var express = require('express'); 
var routes = require('./routes'); 
var https = require('http'); 
var path = require('path'); 
var socketio = require('socket.io'); 
var util = require('util'); 
var url = require('url'); 
var HashMap = require('hashmap').HashMap; 
var sizeOf = require('image-size'); 
var DBWrapper = require('node-dbi').DBWrapper; 
var DBExpr = require('node-dbi').DBExpr; 
var dbConnectionConfig = { host: 'localhost', user: 'mps', password: 'password', database: 'mps_schools' }; 
dbWrapper = new DBWrapper("pg", dbConnectionConfig); 
dbWrapper.connect(); 

var app = express(); 

app.set('port', process.env.PORT || 3001); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 
app.use(express.logger('dev')); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 


app.get('/', routes.index); 

의 설정입니다

다음은 오류 로그입니다.

/home/mps/node_modules/express/lib/router/index.js:291 
throw new Error(msg); 
    ^
Error: .get() requires callback functions but got a [object Undefined] 
at /home/mps/node_modules/express/lib/router/index.js:291:11 
at Array.forEach (native) 
at Router.route (/home/mps/node_modules/express/lib/router/index.js:287:13) 
at Router.(anonymous function) [as get] (/home/mps/node_modules/express/lib/router/index.js:318:16) 
at Function.app.(anonymous function) [as get] (/home/mps/node_modules/express/lib/application.js:412:26) 
at Object.<anonymous> (/home/mps/app22.js:62:5) 
at Module._compile (module.js:456:26) 
at Object.Module._extensions..js (module.js:474:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 

내가 뭘 잘못하고 있니? 감사합니다

+1

불가능에

app.get('/', routes.index); 

에서 변경된 app.get에서

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

을 가져 오려면 다음과 같은 변경,하지만 분명히 'routes' 가져 오기가 실패합니다. 무엇이든 될 수 있지만 환경이 "동일"하고 빌드 프로세스가 손상되지 않았는지 확인해야합니다. –

+0

@DaveNewton과 동의하십시오. 가져 오기 (require ('./ routes');)가 실패했습니다. routes.js 코드와 프로젝트 경로 구조를 게시하십시오. 그렇지 않으면 그 이상의 것을 돕는 것이 어렵습니다. – deChristo

+0

버전 차이가있을 수 있습니까? – user2238284

답변

0

안녕하세요 이것은 바보처럼 보일지 모르지만 나는 발췌 문장에서 그것을 보지 못했을 것입니다. 'app.listen (PORT);'을 추가 했습니까? 그렇지 않으면 패키지 구성을 추가 할 수 있습니다. 거기에 뭔가가있을 수 있습니다. 일반적으로 환경 변화입니다. 이전에는 어떤 시스템이었으며 현재 어떤 시스템을 호스팅하고 있습니까? 희망 사항이 약간 명료하게되었습니다.

+0

네, 그랬어요. – user2238284

+0

'수신 대기'는 실패한 '요구'문제를 해결하지 않습니다. –

0

나는 그것을 작동시켰다. 나는이

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

와 내가 말을

app.get('/', routes);