2017-01-03 5 views
0

Ich verwechsle über relative URL in Express js. Ich habe 2 file: app.js und config.js ich in "my_app" -Ordner bin (Anwendungsordner), und führen App:express js - require ('config.js')

In app.js:

var config = require('config.js'); 
// => throw err : Cannot find module 'config.js' 

var config = require('/config.js'); 
// => throw err : Cannot find module '/config.js' 

var config = require('./config.js'); 
// => throw err : Cannot find module 'http://localhost:3000/config.js' 

var config = require(__dirname + '/config.js'); 
// => throw err : Cannot find module 'http://localhost:3000/config.js' 

Wo ist my_app Ordner? Es befindet sich nicht im Befehl "require", obwohl es im Inneren beginnt.

Dies ist meine Struktur:

start 
    -- controllers 
    -- models 
    -- node_modules 
    -- public 
    -- views 
    app.js 
    config.js 
    package.json 
    router.js 

Bitte geben Sie mir geht! Vielen Dank!

+0

Haben Sie einen Ordner node_modules? –

+0

Sicher habe ich. –

+0

Können Sie versuchen, es dort zu finden? –

Antwort

2

Es gibt 2 Arten von Modulen in Knoten, Kernmodule und benutzerdefinierte Module. Jede Datei, die Sie schreiben, ist ein benutzerdefiniertes Modul. Um auf ein benutzerdefiniertes Modul zu verweisen, müssen Sie den relativen Pfad übergeben.

"./config.js" - here ./ means that config file is in the current directory (of the file you are working on) 
"../config.js" - here ../ means that config file is in the parent directory (of the file you are working on) 
__dirname - macro which gives the path of the directory of the file you are working on 
__filename - macro which gives the path of the file that you are working on 

wenn Sie nur „config.js“ sagen, es bedeutet, dass es ein Kernmodul ist und Knoten sucht für dieses Modul in node_modules Ordner. Wenn es dort nicht gefunden wird, sucht es nach der Datei im Ordner node_modules des übergeordneten Verzeichnisses und so weiter. Wenn es das Modul immer noch nicht findet, wird es einen Fehler

werfen Es ist besser, Pfadmodul zu verwenden, um Pfade zu erstellen, da es einige einfach zu verwendende APIs hat und Fehler vermeidet. Weitere Informationen here

+0

Danke für Ihre Antwort! Aber können Sie mir mehr Details für dieses Problem geben? –

+0

Können Sie bitte Ihre Verzeichnisstruktur Ihres Projekts angeben? –

+0

Ja, ich habe es gerade in meine Frage eingefügt. –