У меня проблемы с запуском экспресс-приложения в докере с узлом 10.9.0 из-за импорта:
root@e85495ae1c9e:/usr/app/backend# node app.js
internal/modules/cjs/loader.js:583
throw err;
^
Error: Cannot find module '/usr/app/backend/models/todo'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/usr/app/backend/app.js:7:12)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
Код работает локально, но не в докере.
Файл, который, как сообщается, отсутствует, определенно находится там:
root@e85495ae1c9e:/usr/app/backend/models# ls -alsh
total 12K
4.0K drwxr-xr-x 2 root root 4.0K Aug 22 12:56 .
4.0K drwxr-xr-x 1 root root 4.0K Aug 24 14:48 ..
4.0K -rwxr-xr-x 1 root root 211 Aug 22 12:57 Todo.js
Импорт внутри app.js
вызывает проблемы (обратите внимание, что я обращаюсь к этому через dirname, потому что мне тоже не повезло с относительным импортом):
var Todo = require(path.join((__dirname), "/models/todo"));
Я не смог найти никого с похожей ошибкой при поиске в Интернете, поэтому я публикую это здесь в надежде на небольшую помощь.
Дайте мне знать, если потребуется дополнительная информация.
Также, если вы отрицаете это, пожалуйста, прокомментируйте, почему, так что я буду знать, где я испортил.