2016-12-14 3 views
0

Ich hatte einen Node.js Express-Server auf meinem Server ausgeführt. Ich habe kürzlich auf einen neuen Server migriert und irgendwie hat der vorherige Code aufgehört zu arbeiten. HierNode.js Routen funktioniert nicht node.js + Express-Server

ist die Einrichtung von meinem Server

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); 

Auf dieser Linie wird der Code

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

Auf logging "routes.index" brechen zu trösten, erhalte ich "undefined"

Hier ist das Fehlerprotokoll:

/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) 

Was mache ich falsch? Danke

+1

Unmöglich zu sagen, aber deutlich der 'routes' Import ist fehlgeschlagen. Könnte fast alles sein, aber ich würde sicherstellen, dass Ihre Umgebung die "gleiche" ist, Ihr Build-Prozess ist intakt, etc. –

+0

Stimmen Sie mit @DaveNewton. Ihr Import (require ('./ routes');) schlägt fehl. Veröffentlichen Sie den Code von routes.js und Ihre Projektpfadstruktur. Sonst ist es schwer, mehr zu helfen. – deChristo

+0

könnte es wegen Versionsunterschied sein? – user2238284

Antwort

0

Hi das mag dumm scheinen, aber ich habe es nicht im Schnipsel gesehen. Sind Sie sicher, dass Sie die App.listen (PORT) hinzugefügt haben? Sonst könnten Sie wahrscheinlich Ihre Paketkonfiguration hinzufügen, da könnte etwas sein. Es ist im Allgemeinen eine Änderung der Umgebung. Auf welchem ​​System waren Sie vorher und auf welchem ​​System hosten Sie gerade? Hoffe das gab ein wenig Klarheit.

+0

ja das habe ich gemacht. – user2238284

+0

'listen' werden das Problem des fehlgeschlagenen' require' nicht behandeln. –

0

Ich habe es zur Arbeit. Ich änderte die

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

zu

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

und von der app.get zu importieren folgende i von

geändert
app.get('/', routes.index); 

zu

app.get('/', routes);