赞
踩
在 Node.js 中访问 MongoDB 数据库通常使用官方推荐的驱动 mongodb
或者更高层次的库如 mongoose
。下面我将向你展示如何使用 mongodb
驱动来连接 MongoDB 数据库并执行基本的操作。
首先,你需要安装 mongodb
驱动。可以通过 npm 安装:
npm install mongodb
接下来,创建一个文件来设置数据库连接。通常这个文件会包含你的数据库连接信息。
// db.js const { MongoClient } = require('mongodb'); const uri = 'mongodb://your-username:your-password@your-host:your-port/your-database'; const options = { useNewUrlParser: true, useUnifiedTopology: true }; let client; async function connectToMongoDB() { client = new MongoClient(uri, options); await client.connect(); console.log('Connected to MongoDB'); } async function closeConnection() { await client.close(); console.log('Disconnected from MongoDB'); } module.exports = { connectToMongoDB, closeConnection, getCollection: (collectionName) => client.db('your-database').collection(collectionName) };
这里我们使用 MongoClient
连接到 MongoDB 数据库,并导出了几个函数来管理连接。
然后,你可以编写一些函数来处理数据库操作,比如查询数据、插入数据等。
// crud.js const db = require('./db'); async function getUsers() { const collection = db.getCollection('users'); const users = await collection.find().toArray(); return users; } async function addUser(user) { const collection = db.getCollection('users'); const result = await collection.insertOne(user); return result; } module.exports = { getUsers, addUser };
在这个例子中,我们定义了两个异步函数:
getUsers
用于获取所有用户。addUser
用于添加一个新用户。最后,在主应用程序文件中使用这些 CRUD 函数。
// app.js const express = require('express'); const crud = require('./crud'); const db = require('./db'); const app = express(); const port = 3000; async function main() { await db.connectToMongoDB(); app.get('/users', async (req, res) => { try { const users = await crud.getUsers(); res.json(users); } catch (error) { console.error(error); res.status(500).send('Error retrieving users'); } }); app.post('/users', async (req, res) => { const newUser = req.body; // Assuming you have middleware to parse JSON try { const result = await crud.addUser(newUser); res.json(result); } catch (error) { console.error(error); res.status(500).send('Error adding user'); } }); app.listen(port, () => { console.log(`Server is running on http://localhost:${port}`); }); // Disconnect when the server is closed process.on('SIGINT', async () => { await db.closeConnection(); process.exit(0); }); } main().catch(console.error);
在这个示例中,我们使用 Express.js 框架创建了一个简单的 Web 服务器,它有两个路由:
/users
路由用于 GET 请求,返回所有的用户列表。/users
路由用于 POST 请求,添加新的用户到数据库。确保你的 MongoDB 服务器正在运行,并且你已经创建了一个名为 users
的集合。你可以使用任何 MongoDB 客户端来创建集合结构。
然后启动你的 Node.js 应用程序:
node app.js
这就是一个基本的例子,你可以在此基础上扩展更多的功能,比如更新和删除记录等。如果你有更具体的需求或者遇到问题,请随时告诉我!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。