2013-12-07 34 views
15
module.js:340 
    throw err; 
     ^
Error: Cannot find module './models/todo' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\Basel\Desktop\Todo List\routes\api.js:1:74) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 

C:\Users\Basel\Desktop\Todo List> 

Perché questa applicazione non verrà avviata? Ho già provato un'installazione globale di npm.Impossibile trovare il modulo in Nodejs

+0

Dov'è la cartella 'models'? – matth

+1

È necessario fornire maggiori dettagli. Hai un file 'todo.js' nella directory' models' che si trova allo stesso livello del file che sta chiamando 'require'? – JohnnyHK

+0

Sì. All'inizio l'ho chiamato a todo. Ho effettuato il refactoring e ho cambiato il titolo in todos.js. Successivamente ho cambiato il percorso nei miei percorsi in modo che riflettesse il cambiamento (in ./models/todos ') ma non ha funzionato neanche. – user2993058

risposta

29

Nel ./models/todo, il periodo indica che il nodo sarà nella cartella stessa che api.js è in, che starebbe per \Todo List\routes\models\todo.js. Questo non parte dalla radice dell'applicazione. Per richiedere questo, avrete bisogno di noi due periodi di saltare un livello, e specificare il percorso app così:

var todo = require('../app/models/todo'); 
+0

nel mio caso analizza il nodo ../ come è in var todo = require ('../app/models/todo'); quindi l'output sarebbe ../app/models/todo non parent/app/models/todo! –

14

forse non hai impostare il valore di sistema: NODE_PATH; dovrebbe puntare alla tua posizione globale del modulo;

in Linux: export NODE_PATH=/usr/local/lib/node_modules/ funziona per me;

-1

nel mio caso, il nome del file che avevo fornito nella mia richiesta era sbagliato. Ho avuto il mio file di modelli denominato posts.js e stavo usando require ('./ models/post'). Ha funzionato dopo averlo modificato per richiedere ('.models/posts')

Problemi correlati