繁体   English   中英

node.js需求函数未找到模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM