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>
为什么这个应用程序无法启动?我已经尝试过全局的npm安装。
答案 0 :(得分:31)
在./models/todo
中,句点表示该节点将查找api.js
所在的相同文件夹,该文件夹将查找\Todo List\routes\models\todo.js
。这不是从应用程序的根目录开始的。要求这样做,您需要我们两个时段来跳过一个级别,并指定应用程序路径:
var todo = require('../app/models/todo');
答案 1 :(得分:14)
也许你没有设置系统值:NODE_PATH;它应该指向您的全局模块位置;
Linux中的:export NODE_PATH=/usr/local/lib/node_modules/
对我有用;
答案 2 :(得分:-1)
在我的情况下,我在require语句中给出的文件名是错误的。我有我的模型文件名为posts.js,我使用require(&#39; ./ models / post&#39;)。在我将其更改为要求(&#39; .models / posts&#39;)
后,它才起作用