Nodejs:Mac OS X 下运行 express app.js 出错。

Nodejs:Mac OS X 下运行 express app.js 出错。

已经全局安装了,并且可用 express 命令 。但是还是会报错

错误如下:

module.js:340
throw err;
      ^
Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/YeXiang/Documents/helloworld/app.js:1:77)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

求好心人解答。


10 回复

在 Mac OS X 环境下运行 Node.js 的 Express 应用时遇到 Cannot find module 'express' 错误,通常是因为你的应用没有正确安装 Express 模块。以下是一些可能的解决方案及步骤。

解决方案

  1. 确保全局和局部安装

    • 全局安装 express 仅用于使用 express 命令行工具。对于实际的应用开发,你需要在项目中安装 Express 作为依赖项。
    • 运行以下命令在项目目录中安装 Express:
      npm install express --save
      
    • --save 参数会将 express 添加到 package.json 文件中的 dependencies 列表里,确保其他开发者可以轻松地复制你的环境。
  2. 检查 package.json 文件

    • 打开项目根目录下的 package.json 文件,确认 dependencies 中是否包含 express。如果不确定,可以直接添加:
      {
        "name": "your-app-name",
        "version": "1.0.0",
        "dependencies": {
          "express": "^4.17.1"
        }
      }
      
    • 然后运行 npm install 来安装所有列出的依赖项。
  3. 检查文件路径

    • 确认 app.js 文件中引入 Express 的方式是否正确。通常应该像这样写:
      const express = require('express');
      const app = express();
      

示例代码

假设你已经创建了一个基本的 Express 应用 app.js,并且希望在 Mac OS X 上运行它:

// app.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

总结

  • 确保 Express 已经被正确安装为项目的本地依赖。
  • app.js 中正确引入 Express 模块。
  • 使用 npm install 安装依赖以确保所有模块都已下载。

通过上述步骤,你应该能够解决在 Mac OS X 下运行 Express 应用时报错的问题。


还要在npm install,?

贴关键代码看看? 提示模块找不到

是的,就是提示express找不到。

配置 NODE_PATH环境变量. /usr/local/lib/node_modules

npm install -g express-generator

当前目录安装肯定可以

npm install express,在当前项目目录下安装

感谢。已解决。

根据你的描述,错误信息表明 Node.js 在尝试运行 app.js 文件时找不到 express 模块。这通常是因为该模块没有被安装在项目中,而是期望通过全局安装来使用。

解决方案

确保 express 模块已安装在你的项目本地。你可以按照以下步骤操作:

  1. 打开终端。
  2. 进入你的项目目录(即包含 app.js 文件的目录)。
  3. 运行命令 npm install express --save 来安装 express 模块并将其添加到 package.json 文件的依赖列表中。

安装完毕后,再次运行你的应用,应该可以解决问题。例如,如果你的 app.js 文件中有类似以下的代码:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

现在应该可以正常运行了。

示例代码

首先确保在项目根目录下有一个 package.json 文件,可以通过运行 npm init -y 快速生成一个基础的 package.json 文件。然后,在项目根目录中执行:

npm install express --save

这样就完成了本地安装 express 的过程。

回到顶部