node.js需要找不到模块的函数

我有一个server.js文件,我从别人的网站下载。 第一行是:var express = require('express');

当我尝试使用“node server.js”运行此服务器时,出现以下错误:“无法find模块”express“”。 快速模块安装在默认节点安装位置:

C:\用户\ MYNAME \ node_modules \performance\

我可以通过执行node_modules中快速安装位置的“node express.js”来成功运行express。 我也尝试复制快速文件夹和文件到我的server.js文件所在的c:\ node-testing \目录中,但仍然出现错误。 任何想法可能是什么,以及如何解决?

您可以设置NODE_PATH环境variables来告诉nodejssearch不在项目目录中的全局安装模块的其他path。

有关详细信息,请参阅http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

在Unix安装中,有一些内置的默认位置,但在Windows上,似乎必须手动设置此环境variables才能支持全局位置。


仅供参考,如果您需要从项目目录加载模块,则必须使用

 require("./filename"); 

./在它前面。 这就是为什么当你将其复制到项目目录时它不起作用。 节点会区分从项目目录加载和从下面的node_modules目录加载,因此需要使用不同的语法来指定所需的目录。 Express.js也不是一个独立的模块,因为它依赖于一堆其他模块,所以你不能复制它。 我build议使用NODE_PATH选项或将express安装到您的项目目录(它将最终在一个node_modules子目录中)。

Node.js将只从当前(和父)目录中search模块。 与npm不同,Node没有“全局”模块的概念。

您需要运行npm install来将您的模块npm install到包含您的代码的目录中。