【问题标题】:Error: Cannot find module 'xxx' repeats over and over?错误:找不到模块“xxx”一遍又一遍地重复?
【发布时间】:2017-02-10 22:07:47
【问题描述】:

尝试使用 express.js 到简单的 Web 服务器的教程。 问题:当我运行 js 时,我不断收到相同的错误,说模块“x”然后模块“y”然后模块“z”丢失。 依赖模块似乎没有被加载。

我需要做什么才能让我的 js 中的所有依赖项自动加载? (或者这是正常的 node.js 行为?)

这是我的工作:

  1. cd 到应用文件夹

  2. npm init // package.json 创建

  3. npm install express // 创建了 node_modules 目录。表达在里面。

  4. 节点 03y.js

  5. 这样的错误:

错误:找不到模块“body-parser” 在 Function.Module._resolveFilename (module.js:325:15)

  1. 所以我这样做:npm install body-parser

  2. 再次运行:例如:错误:找不到模块'whatever'等......

我错过了重要的一步吗?

【问题讨论】:

  • 没有看到你的require() 行很难说...

标签: node.js express npm


【解决方案1】:

我猜这个教程来自旧版本的 Express。它曾经与 body-parser 和一堆其他中间件捆绑在一起,现在没有了。您可以通过为每个出错的模块运行 npm install 来启动它,或者查找最新的教程。我推荐后者,因为如果你只是在学习,从 3 到 4 并不容易。

另外,明智的说法是,始终将 --save 标志添加到 npm install,这将确保您的 package.json 在依赖项上是正确的,这有助于以后的部署。

【讨论】:

    【解决方案2】:

    我认为你应该在运行命令npm install之前编辑文件package.json

    在文件package.json中,你应该添加一个子节点"dependencies",其中包括你在项目中需要的所有模块

    这是您可以参考的一个项目的package.json 的一部分:

    {
        "dependencies": {
            "babel-core": "6.13.2",
            "babel-polyfill": "6.13.0",
            "babel-preset-es2015-node6": "0.3.0",
            "babel-preset-stage-3": "6.5.0",
            "sequelize": "3.24.1",
            "mysql": "2.11.1",
            "koa": "2.0.0",
            "koa-bodyparser": "3.2.0",
            "koa-router": "7.0.0",
            "koa-session2": "1.0.8",
            "nunjucks": "2.4.2",
            "mime": "1.3.4",
            "mz": "2.4.0"
        }
    }
    

    【讨论】:

    • 谢谢大家。我将打印和研究回复。 BTW 版本是 express@4.14.0 node_modules\express Than U 再次来自新手.... 一步一步慢慢来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多