Nodejs 在 nitrous.io 如何连接mongo呢?

Nodejs 在 nitrous.io 如何连接mongo呢?

在nitrous.io上布署node应用,安装了mongodb,但是无法连接。

在本地可以通过以下方式启动数据服务 mongod --repair --dbpath F:/Yun/ITCloud/ENV/mongodb/data/db mongod --dbpath F:/Yun/ITCloud/ENV/mongodb/data/db

但在nitrous上不知道如何启动数据服务,(不是启动mongodb)

3 回复

Nitrous.io 上部署 Node.js 应用并连接到 MongoDB 时,你需要确保 MongoDB 服务已经在你的 Nitrous.io 环境中正确运行。Nitrous.io 提供了一个基于云的开发环境,因此你不需要像在本地环境中那样手动启动 MongoDB 服务。

步骤 1: 安装 MongoDB

首先,确保你在 Nitrous.io 环境中已经安装了 MongoDB。你可以使用以下命令来安装 MongoDB:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-4.4.6.tgz
tar -xvf mongodb-linux-x86_64-ubuntu2004-4.4.6.tgz
sudo mv mongodb-linux-x86_64-ubuntu2004-4.4.6/bin/* /usr/local/bin/

步骤 2: 启动 MongoDB 服务

Nitrous.io 中,你可以通过简单的配置文件来启动 MongoDB 服务。创建一个 mongod.conf 文件,用于配置 MongoDB 的参数:

nano mongod.conf

添加以下内容到 mongod.conf 文件中:

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
storage:
  dbPath: /data/db
net:
  bindIp: 127.0.0.1
  port: 27017

然后启动 MongoDB 服务:

mongod --config mongod.conf &

步骤 3: 连接 Node.js 应用到 MongoDB

现在,你可以使用 Node.js 的 mongodb 驱动程序来连接到 MongoDB 服务。首先,安装 mongodb 包:

npm install mongodb

接下来,在你的 Node.js 应用中,使用以下代码连接到 MongoDB:

const { MongoClient } = require('mongodb');

async function main() {
    const uri = "mongodb://localhost:27017";
    const client = new MongoClient(uri);

    try {
        await client.connect();
        console.log("Connected to MongoDB");

        // 操作数据库
        const database = client.db('testDB');
        const collection = database.collection('testCollection');
        
        // 插入文档
        const doc = { name: "Test", age: 30 };
        const result = await collection.insertOne(doc);
        console.log(`Inserted document with _id: ${result.insertedId}`);

    } catch (error) {
        console.error(error);
    } finally {
        await client.close();
    }
}

main().catch(console.error);

这段代码将连接到运行在本地(即 Nitrous.io 环境)的 MongoDB 服务器,并插入一个测试文档到 testDB 数据库中的 testCollection 集合。

这样,你就可以在 Nitrous.io 上成功地运行 Node.js 应用并与 MongoDB 进行交互了。


parts install mongodb

parts start mongodb

Nitrous.io 上部署 Node.js 应用并连接到 MongoDB 的过程与在本地开发有所不同。Nitrous.io 是一个基于云的开发环境,它不支持直接运行 MongoDB 服务,但你可以使用云托管的 MongoDB 服务(如 MongoDB Atlas)来替代。

示例步骤

  1. 创建 MongoDB Atlas 账户并创建数据库集群

    • 注册并登录到 MongoDB Atlas。
    • 创建一个新的集群,并设置好 IP Whitelist 和认证信息。
  2. 获取连接字符串

    • 在 MongoDB Atlas 中,找到你的集群,然后获取连接字符串。格式通常如下:
      mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority
      
  3. 在 Node.js 应用中连接到 MongoDB

    • 使用 mongoosemongodb 模块连接到远程 MongoDB 数据库。
// 安装 mongoose 模块
// npm install mongoose

const mongoose = require('mongoose');

mongoose.connect('mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority', {
  useNewUrlParser: true,
  useUnifiedTopology: true
});

const db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log("Connected to MongoDB!");
});
  1. 配置环境变量

    • 将用户名、密码等敏感信息存储在环境变量中,而不是硬编码在代码里。
    export MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority
    

    然后在代码中引用环境变量:

    const mongoose = require('mongoose');
    const MONGO_URI = process.env.MONGO_URI;
    
    mongoose.connect(MONGO_URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true
    });
    

通过以上步骤,你可以在 Nitrous.io 上部署的 Node.js 应用中成功连接到 MongoDB。这样做的好处是,即使你的 Nitrous.io 环境被重置,也不影响你的数据存储。

回到顶部