更新时间:2026-07-21 GMT+08:00
分享

Node.js 示例

操作场景

DDS支持通过Node.js语言接口来操作数据,通过Node.js连接实例的方式有开启SSL认证连接和关闭SSL认证连接两种,其中开启SSL证书连接加密功能,具有更高的安全性。

DDS新实例默认关闭SSL数据加密,开启SSL请参考开启SSL

本章节主要介绍使用Node.js语言连接集群实例的方法。

前提条件

  1. 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。

    curl ip:port

    返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。

  2. 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。

环境配置及驱动获取

  1. 确保您的环境已安装Node.js,获取地址请参考 Node.js 官网
  2. 初始化项目,创建项目目录并进入,执行初始化命令生成package.json文件:
    mkdir your_project
    cd your_project
    npm init -y
  3. 安装驱动程序:
    npm install mongodb@3.7.4

开启和关闭SSL安全连接

在 your_project 目录中,为应用程序创建一个名为index.js的文件,将示例代码复制到index.js中。

const { MongoClient } = require('mongodb');
const uri = 'mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin';
const client = new MongoClient(uri, {
    serverSelectionTimeoutMS: 5000, // 5 秒内找不到可用节点就报错
    connectTimeoutMS: 5000,         // 单次 TCP 连接 5 秒超时
    socketTimeoutMS: 10000          // socket 空闲 10 秒超时
});
async function main() {
    try {
        await client.connect();
        console.log('成功连接到 MongoDB');
        // 测试连接
        const result = await client.db('admin').command({ ping: 1 });
        console.log('Ping 结果:', result);
        // 示例:读取数据
        const db = client.db('test');
        const collection = db.collection('users');
        const doc = await collection.findOne({});
        console.log('查到的第一条文档:', doc);
    } catch (err) {
        console.error('连接或操作失败:', err);
    } finally {
        await client.close();
    }
}
main().catch(console.dir);
const { MongoClient } = require('mongodb');
const uri = 'mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin';
const client = new MongoClient(uri, {
    serverSelectionTimeoutMS: 5000, // 5 秒内找不到可用节点就报错
    connectTimeoutMS: 5000,         // 单次 TCP 连接 5 秒超时
    socketTimeoutMS: 10000,        // socket 空闲 10 秒超时
    tls: true,
    tlsCAFile:'./ca.crt',           // 证书地址
    tlsAllowInvalidHostnames: true
});
async function main() {
    try {
        await client.connect();
        console.log('成功连接到 MongoDB');
        // 测试连接
        const result = await client.db('admin').command({ ping: 1 });
        console.log('Ping 结果:', result);
        // 示例:读取数据
        const db = client.db('test');
        const collection = db.collection('users');
        const doc = await collection.findOne({});
        console.log('查到的第一条文档:', doc);
    } catch (err) {
        console.error('连接或操作失败:', err);
    } finally {
        await client.close();
    }
}
main().catch(console.dir);

相关文档