Ich schreibe meine app.js einschließlich aller Routen in der Hauptdatei und alles hat gut funktioniert. Nach meinem Ziel war es, das Projekt klarer zu machen, indem ich die Routen in andere Dateien verschiebe, aber es funktioniert nicht. Ich übergebe ein Objekt statt einer Middleware-Funktion und ich weiß nicht, wie ich es richtig beheben soll.Nodejs Express: Routen in separaten Dateien
Das ist also meine app.js Datei:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');
var myRoutes = require('./app/routes/myRoutes.js');
...
//parser for getting info from POST and/or URL parameters
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//for log requests to console
app.use(morgan('dev'));
app.use('/myRoutes', myRoutes);
app.get('/',function(req,res){
res.end('Welcome Page!');
});
//Server Start
app.listen(port);
console.log('server start at port ' + port);
Und die app/Routen/myRoutes.js enthält den folgenden Code:
var express = require('express');
...
var myRoutes = express.Router();
myRoutes.get('/users',function(req,res){
...
});
myRoutes.post('/setup',function(req,res){
...
});
myRoutes.post('/remove', function(req,res){
...
});
module.export = myRoutes;
Ich habe auch versucht diese:
var express = require('express');
var myRoutes = express.Router();
myRoutes.route('/')
.get(function(req, res, next){
res.end('myRoute Get');
})
.post(function(req, res, next){
res.end('myRoute Post');
});
module.export = myRoutes;
Aber wieder scheint es keine Middleware-Funktion zu übergeben.
versuchen 'var MyRoutes = require (‘ ./app/routes/myRoutes '); 'und prüfen, ob myRoutes null ist oder nicht –
die Datei korrekt geladen ist. Die Probleme hängen mit der Übergabe einer Middleware-Funktion anstelle eines Objekts zusammen. – pittuzzo
Was ist der Fehler? –