2017-02-18 11 views
0

Ich weiß, dass dieses Problem unendlich oft eingereicht wurde, aber selbst nach dem Durchsuchen von X Fragen und möglichen Lösungen bleibt dieser Fehler bestehen.Kann Modul XYZ nicht finden

Ich habe eine Datei namens tournament.js in den Verzeichnis-Modulen. tournament.js erfordert model.js, die sich im genau gleichen Verzeichnis befindet. Die Struktur ist die folgende:

app/ 
    modules/ 
    model.js 
    tournament.js 

tournament.js wie folgt aussieht:

const Model = require('./model'); 

class Tournament extends Model { 

    constructor() { 
    super(); 
    } 

    static create() { 

    } 
} 

Auch WebStorm sagt der Pfad in require() korrekt ist, aber meine Konsole immer noch sagt: Uncaught Error: Cannot find module './model'

Was bin ich fehlt ?

Edit: Ich verwende Knoten V6.4.0 und Electron v1.4.15

+0

haben Sie versucht, 'const Typ = require (‘ ./ model.js'); '?? – Panther

+0

Ja, derselbe Fehler. – Fortuna

+0

Immer wenn mir das passiert, füge ich immer ein 'console.log (__ dirname)' direkt vor dem fehlgeschlagenen 'require (...)' hinzu, nur um den Ordnernamen korrekt zu machen. Meistens arbeite ich im * falschen Ordner *. – adelphus

Antwort

1

Gut @adelphus gab mir den richtigen Hinweis. Ich gab den Pfad mit console.log(__dirname) aus und es war nicht das, was ich erwartete: Ja, ich war auf dem falschen Weg, weil ich dachte, der relative Pfad require() ist der eine relativ zu der Datei, in der ich gerade arbeite (das war das Turnier). js) und das ist nicht der Fall.

Statt require() nimmt den Pfad relativ aus der App Wurzel, die in diesem Fall war ./app/models/model.js

+0

Node akzeptiert '. /' Das gleiche wie das Verzeichnis der aktuellen Datei - "[*' circle.js' muss sich im gleichen Verzeichnis wie 'foo.js' befinden für' require ('./ circle') 'to finde es. *] (https://nodejs.org/dist/v6.4.0/docs/api/modules.html#modules_file_modules) –

+0

Nun, es funktioniert nicht für mich, vielleicht sollte ich auch beachten, dass ich es bin Mit gulp und meinen automatisierten Aufgaben kopiere ich meinen Code von './src' in den Ordner'./build', aber mit der gleichen Ordnerstruktur (also 'src' und' build' sind identisch mit der Struktur) build/main.js'. '__dirname' gibt dann einen komplett anderen Pfad aus, anstatt"./build/app/models' zu sein, ist es './build'. Ich weiß nicht warum. – Fortuna