[英]node.js require function not finding module
我有一个从某人的网站下载的server.js文件。 第一行是:var express = require('express');
当我尝试使用“ node server.js”运行此服务器时,出现以下错误:“找不到模块'express'。” Express模块安装在默认节点安装位置:
C:\\用户\\ MYNAME \\ node_modules \\表现\\
通过从node_modules中的express安装位置执行“ node express.js”,我能够成功运行express。 我还尝试将express文件夹和文件复制到我的server.js文件所在的c:\\ node-testing \\目录中,但仍然出现错误。 知道可能是什么问题以及如何解决?
Node.js将仅在当前(和父)目录中搜索模块。 与npm不同,Node没有“全局”模块的概念。
您需要运行npm install
将模块npm install
到包含代码的目录中。
您可以设置NODE_PATH
环境变量来告诉nodejs在其他路径中搜索不在项目目录中的全局安装的模块。
有关详细信息,请参见http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders 。
在Unix安装中,有一些内置的默认位置,但是在Windows上,您似乎必须手动设置此环境变量才能支持全局位置。
仅供参考,如果您需要从项目目录中加载模块,则必须使用
require("./filename");
前面带有./
。 这就是为什么将其复制到项目目录后无法使用的原因。 node区分了从项目目录加载和从下面的node_modules目录加载,因此需要使用不同的语法来指定所需的语法。 Express.js也不是一个独立的模块,因为它依赖于许多其他模块,因此您不能仅复制它。 我建议使用NODE_PATH
选项或将express安装到您的项目目录中(它将最终出现在node_modules
子目录中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.