为什么NodeJS要求我使用下载模块的完整目录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么NodeJS要求我使用下载模块的完整目录?相关的知识,希望对你有一定的参考价值。

例如Express之类的东西,默认情况下不带Node。我必须使用var express = require('C:/Users/User/node_modules/express');而不仅仅是var express = require('express');。我注意到默认情况下出现的模块(例如http)与我安装的模块不在同一个位置。那么我需要做什么才能不必编写整个目录。如果它有任何区别我将所有的Node项目保存在C:/Node/中,而不是默认项目。

答案

发生这种情况是因为您可能没有在本地安装节点模块。为此,您需要一个package.json文件,您可以通过运行获得该文件

npm init

这将询问您有关项目的一些问题,并将在本地设置节点。将创建一个看起来像这样的package.json文件(没有依赖项)。

{
  "name": "express-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "Link to your repository"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bcrypt": "^1.0.2",
    "body-parser": "^1.17.2",
    "chalk": "^2.0.1",
    "compression": "^1.7.0",
    "cookie-parser": "^1.4.3",
    "cors": "^2.8.4",
    "express": "^4.15.3",
    "glob": "^7.1.2",
    "moment": "^2.18.1",
    "mongoose": "^4.11.3",
    "morgan": "^1.8.2",
    "passport": "^0.3.2",
    "path": "^0.12.7",
    "yargs": "^8.0.2"
  }
}

然后,您可以通过将它们放入依赖项并运行来添加所需的节点模块

npm安装

如果要从命令行添加节点模块,可以使用

npm install package-name --save

以上是关于为什么NodeJS要求我使用下载模块的完整目录?的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs - 除非使用完整路径,否则无法导入模块

NodeJS中安装第三方模块`Gulp`以及它的使用

使用nodejs下载风景壁纸

我可以从 http 模块 .get 响应中获取 nodejs 中的完整 http 响应文本吗?

NodeJS(服务器):ReferenceError:当类型:模块时未定义要求

如何要求深度嵌套的 NodeJS 模块?