如何将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}`); });
关键细节说明
- MongoDB连接:使用官方
MongoClient做异步连接,通过main函数在服务启动时执行连接逻辑,加入错误捕获避免连接失败导致服务异常。 - 请求体解析:必须添加
app.use(express.json()),否则POST接口无法正确解析请求中的JSON格式数据。 - 数据查询:通过
collection.find({})获取数据游标,用for await...of异步遍历游标,这是MongoDB v5推荐的高效数据读取方式。 - 数据插入:调用
insertOne方法直接插入请求体数据,实现单条数据的快速入库。
内容的提问来源于stack exchange,提问作者Aakash Handa
相关产品推荐
相关产品推荐

