kann nicht app.local zu einer Routing-Datei abrufen

9

Also, in meinem express.js 4.13.3. In der Datei app.js setze ich app.local var

app.set('multimedia', __dirname + '/public/multimedia');

Dann versuche ich in der routes/settings.js auf diese Variable wie

zuzugreifen %Vor%

und ich bekomme app.get is not a function .

Ich habe auch var dir = app.get.multimedia; und var dir = app.locals('multimedia'); und var dir = app.locals.multimedia; versucht und immer noch nichts.

Was fehlt mir hier?

Danke

    
slevin 13.12.2015, 18:32
quelle

2 Antworten

2

Das Problem ist, dass Sie nicht definiert haben, was zu tun ist, wenn required('../app') aufgerufen wird. Sie sollten dies mit module.exports tun, wie unten gezeigt. Versuchen Sie einen dieser Ansätze, um dieses Problem zu beheben.

Ansatz 1:

Fügen Sie diese Zeile der app.js -Datei hinzu.

%Vor%

Dies sagt einfach, dass app immer dann exportiert wird, wenn require('../app') aufgerufen wird. Wenn Sie require('routes/settings'); in app.js verwenden, sollte diese Zeile vor require('routes/settings'); stehen oder nicht.

Ansatz 2:

%Vor%

Fügen Sie diese Zeile zu app.js

hinzu %Vor%

Jetzt sollten Sie die app.get () ohne Probleme verwenden können.

Beispiel:

%Vor%

Weitere Details zu module.exports finden Sie hier

    
shan1024 15.12.2015 20:36
quelle
0

In settings.js

%Vor%

In app.js:

%Vor%

Grundsätzlich exportieren Sie die Funktion von wo Sie sie verwenden möchten und fordern Sie diese Dateien in app.js.

Beispielprojekt:

server.js:

%Vor%

settings.js:

%Vor%

Beide Dateien befinden sich im selben Ordner. So führen Sie aus: Knotenserver

Ergebnis:

    
admix 22.12.2015 15:56
quelle

Tags und Links