Das Problem ist, dass Sie nicht das, was, wenn required('../app')
genannt zu tun definiert haben. Sie sollten dies unter Verwendung von module.exports
wie unten gezeigt tun. Versuchen Sie einen dieser Ansätze, um dieses Problem zu beheben.
Ansatz 1:
Fügen Sie diese Zeile in die app.js
Datei.
module.exports = app;
Dieses einfach sagt der app
zu exportieren, wenn require('../app')
genannt wird. Wenn Sie require('routes/settings');
innerhalb der app.js
verwenden, sollte diese Zeile vor der require('routes/settings');
platziert werden oder es wird nicht funktionieren.
Ansatz 2:
//change the `routes/settings.js` like this
module.exports = function (app) {//notice that you pass the app to this
//............
var dir = app.get('multimedia');
console.log(dir);
//............
}
Fügen Sie diese Zeile zu app.js
require('routes/settings')(app);
Jetzt sollten Sie in der Lage sein, die app.get() ohne Probleme zu benutzen.
Beispiel:
//app.js
var express=require('express');
var app = express();
app.set('multimedia', __dirname + '/public/multimedia');
app.get('/',function(req,res){
res.send('Hello World!');
});
var server = app.listen(3000, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Listening at http://%s:%s', host, port);
});
module.exports=app;
require('./settings');
//settings.js
var app= require('./app');
var dir = app.get('multimedia');
console.log(dir);
Mehr Details über module.exports here gefunden werden kann
Siehe ähnliche Frage und Lösung hier: http://stackoverflow.com/questions/34301795/node-js-passing-object-from- server-js-to-external-modules/34301907 # 34301907 – admix