Nodejs 如何在Ubuntu上部署运行node club

Nodejs 如何在Ubuntu上部署运行node club

从github下载了nodeclub 已经正确安装了node.js和monogodb

现在我cd到nodeclub的目录,使用root输入:npm install 所有包依赖都安装好后,在nodeclub根目录新建了data文件夹,输入:mongod --dbpath … 然后输入:mongo 出现数据库正确启动的提示。

但是问题出现了,输入:node app.js 报错如下: Error: Cannot find module 'mongodb’ 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> (/home/nova/Downloads/nodeclub-master/node_modules/mongoose/lib/utils.js:5:16) 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 Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/nova/Downloads/nodeclub-master/node_modules/mongoose/lib/schema.js:7:13) 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 Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/nova/Downloads/nodeclub-master/node_modules/mongoose/lib/index.js:7:14) 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 Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/nova/Downloads/nodeclub-master/node_modules/mongoose/index.js:7:18) 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 Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/nova/Downloads/nodeclub-master/models/index.js:1:78) 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 Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/nova/Downloads/nodeclub-master/app.js:20:1) 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) at startup (node.js:119:16) at node.js:929:3

要怎么解决


7 回复

为什么会有mongodb这个包依赖?json里不是mongoose么


在 Ubuntu 上部署 Node Club 遇到了 Cannot find module 'mongodb' 的错误,这通常是因为缺少必要的依赖。以下是详细的步骤来解决这个问题,并确保 Node Club 正确部署和运行。

解决步骤

  1. 确认 MongoDB 模块已安装 确保你的项目中已经安装了 mongodb 模块。如果没有安装,可以通过以下命令安装:

    npm install mongodb
    
  2. 检查 package.json 文件 确认 package.json 文件中是否包含了 mongodb 作为依赖项。如果未包含,手动添加并重新安装依赖。

    {
      "dependencies": {
        "mongodb": "^4.1.0",
        // 其他依赖
      }
    }
    

    然后运行:

    npm install
    
  3. 启动 MongoDB 服务 确保 MongoDB 服务已经正确启动。你可以通过以下命令启动 MongoDB 服务:

    mongod --dbpath /path/to/data
    

    如果你已经在 /home/nova/Downloads/nodeclub-master/data 创建了数据文件夹,可以这样启动:

    mongod --dbpath /home/nova/Downloads/nodeclub-master/data
    
  4. 启动 Node Club 应用 在 Node Club 根目录下运行应用:

    node app.js
    

示例代码

假设你已经完成了上述步骤,下面是完整的操作流程:

# 进入 Node Club 目录
cd /home/nova/Downloads/nodeclub-master

# 安装所有依赖
npm install

# 启动 MongoDB 服务
mongod --dbpath /home/nova/Downloads/nodeclub-master/data

# 启动 Node Club 应用
node app.js

注意事项

  • 权限问题:确保你有权限访问和写入数据文件夹。
  • 环境变量:确保所有环境变量(如数据库连接字符串)已经正确设置。
  • 版本兼容性:确保 mongodb 版本与 Node Club 的其他依赖项兼容。

通过以上步骤,你应该能够成功解决 Cannot find module 'mongodb' 的问题,并顺利运行 Node Club。

mongoose只是增强的功能(ORM,操作的还是mongodb

[@coolicer](/user/coolicer) 但是package.json没有mongodb的包啊,其他做的一些项目也没有这个包,现在这个问题要怎么解决?

运行 sudo npm install mongodb

path.exists is now called fs.exists. God bless love…

events.js:72 throw er; // Unhandled ‘error’ event ^ Error: listen EACCES at errnoException (net.js:905:11) at HTTPServer.Server._listen2 (net.js:1024:19) at listen (net.js:1065:10) at HTTPServer.Server.listen (net.js:1139:5) at Object.<anonymous> (/home/nova/nodeclub/app.js:65:5) 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) nova[@ubuntu](/user/ubuntu):~/nodeclub$

根据你的描述,错误信息 Error: Cannot find module 'mongodb' 表明 Node.js 在尝试运行 app.js 时找不到名为 mongodb 的模块。这通常是因为该模块没有被正确安装。

解决步骤

  1. 确保所有依赖项都已正确安装: 确保在项目根目录下执行 npm install,以确保所有依赖项都被安装。

    cd /path/to/nodeclub
    npm install
    
  2. 检查 package.json 文件: 确认 package.json 文件中包含 mongodb 作为依赖项。如果 mongodb 没有被列出为依赖项,你可以手动添加它。

    {
      "dependencies": {
        "mongodb": "^3.6.4"
      }
    }
    

    添加之后再次运行 npm install

  3. 清理并重新安装依赖项: 如果上述步骤没有解决问题,可以尝试删除 node_modules 目录并重新安装依赖项。

    rm -rf node_modules
    npm install
    
  4. 检查 Node.js 版本: 确保你使用的 Node.js 版本与项目兼容。有时,特定版本的 Node.js 可能会导致某些模块无法正常工作。

    node -v
    

    如果需要,可以考虑使用 nvm(Node Version Manager)来管理不同版本的 Node.js。

示例代码

假设 package.json 文件已经正确配置:

{
  "name": "nodeclub",
  "version": "1.0.0",
  "dependencies": {
    "mongodb": "^3.6.4",
    // 其他依赖项...
  }
}

执行以下命令来安装依赖项:

cd /path/to/nodeclub
npm install

然后再次尝试运行应用:

node app.js

通过这些步骤,你应该能够解决 Cannot find module 'mongodb' 的问题,并成功运行 Node Club 应用。

回到顶部