在Nodejs中找不到模块

时间:2013-12-07 20:54:38

标签: node.js mongodb crud

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安装。

3 个答案:

答案 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;)

后,它才起作用