Node.js Express错误:找不到模块

时间:2018-08-24 16:08:43

标签: javascript node.js docker npm

由于导入,我在节点10.9.0的docker中运行快速应用程序遇到困难:

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)

代码在本地工作,但不在docker中工作。

报告的文件丢失肯定存在:

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内的导入引起麻烦的是这个(请注意,我通过目录名来解决这个问题,因为我相对运气是零):

var Todo = require(path.join((__dirname), "/models/todo"));

搜索网络时找不到类似错误的人,因此我在此发布此消息,以寻求帮助。

让我知道是否需要更多信息。

如果您对此不满意,请对原因进行评论,以便我知道我在哪里搞砸了。

1 个答案:

答案 0 :(得分:1)

只是想将此添加为将来的读者的答案。

问题出在套管上。当文件是Todo时,他需要执行任务。始终确保要求使用正确的外壳。您不能依靠操作系统来找到正确的文件。