Node.js - не могу найти модуль - PullRequest
15 голосов
/ 13 марта 2011

Я использую Узел Boilerplate , и все это работало нормально, пока я не решил создать еще один проект поверх него (в другом каталоге).

Теперь у меня точно такая же база кода(этот проект как есть) в двух разных папках.Я могу запустить один из них без каких-либо проблем, но другой не работает с:

% node app.js
node.js:116
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'connect/middleware/router'
    at Function._resolveFilename (module.js:299:11)
    at Function._load (module.js:245:25)
    at require (module.js:327:19)
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/server.js:17:14)
    at Module._compile (module.js:383:26)
    at Object..js (module.js:389:10)
    at Module.load (module.js:315:31)
    at Function._load (module.js:276:12)
    at require (module.js:327:19)
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/index.js:28:31)

Здесь описана похожая проблема - https://github.com/visionmedia/express/issues/535, которая говорит о том, что проблема в несовместимой версии подключения/express.

Но как это возможно?Исходный код в двух папках одинаков, он отлично работает в одной копии и не работает в другой?

Ответы [ 3 ]

8 голосов
/ 14 марта 2011

Обе папки имеют общего родителя? Узел ищет модули в ~ / .node_modules и / node_modules в директории вашего приложения.

7 голосов
/ 14 марта 2011

ОК, позвольте мне ответить на мой собственный вопрос:

Извините за дезинформацию - эти две папки были не совсем одинаковыми (мне нужно лучше изучить unix diff).И там он требует ("connect") в коде

Локальная проверка подключения в папке / lib имеет преимущество, но если его там нет - connect будет загружен из ~ / .node_modules, как ранее было установлено Ricardo.

5 голосов
/ 21 мая 2011

@ см. Модуль node.js Express не загружается должным образом в последнем комментарии, возможно, это поможет

Основная идея заключается в том, чтобы установить модуль внутри папки приложения, а не насистемный уровень

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...