You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MongoDB v5与Node.js进行连接?

MongoDB v5 与 Node.js(Express)连接实战:查询与插入操作示例

前置准备

  • 确保本地MongoDB v5服务已启动,默认监听27017端口
  • 初始化Node.js项目,安装所需依赖:
    npm install express mongodb
    

完整实现代码

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

// MongoDB本地连接地址
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);

// 异步连接MongoDB
async function main() {
    try {
        await client.connect();
        console.log('成功连接到MongoDB');
    } catch (err) {
        console.error('MongoDB连接失败:', err);
    }
}

// 指定目标数据库与集合
const collection = client.db('internfeb').collection('dashboard');
const port = process.env.PORT || 7710;

// 解析JSON格式请求体(必须添加,否则POST接口无法获取req.body)
app.use(express.json());

// 查询集合所有文档的接口
app.get('/health', async (req, res) => {
    try {
        const output = [];
        const cursor = collection.find({});
        // 异步遍历游标获取所有数据
        for await (const doc of cursor) {
            output.push(doc);
        }
        res.send(output);
    } catch (err) {
        res.status(500).send('查询失败: ' + err.message);
    }
});

// 插入单条数据的接口
app.post('/addUser', async (req, res) => {
    try {
        await collection.insertOne(req.body);
        res.send('数据添加成功');
    } catch (err) {
        res.status(500).send('数据插入失败: ' + err.message);
    }
});

// 启动服务并触发MongoDB连接
app.listen(port, () => {
    main();
    console.log(`服务运行在端口 ${port}`);
});

关键细节说明

  1. MongoDB连接:使用官方MongoClient做异步连接,通过main函数在服务启动时执行连接逻辑,加入错误捕获避免连接失败导致服务异常。
  2. 请求体解析:必须添加app.use(express.json()),否则POST接口无法正确解析请求中的JSON格式数据。
  3. 数据查询:通过collection.find({})获取数据游标,用for await...of异步遍历游标,这是MongoDB v5推荐的高效数据读取方式。
  4. 数据插入:调用insertOne方法直接插入请求体数据,实现单条数据的快速入库。

内容的提问来源于stack exchange,提问作者Aakash Handa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:20:28