返回
从零开始打造 Express + MongoDB 后端项目
前端
2023-10-27 00:44:37
Express.js 作为最受欢迎的 Node.js 后端框架之一,以其简单、灵活和高性能而备受青睐。MongoDB 则是一款流行的非关系型数据库,以其灵活的数据模型和高扩展性而著称。将这两者结合使用,可以快速构建出高效、可靠的后端系统。
前期准备
在开始之前,您需要确保已安装好以下软件:
- Node.js
- MongoDB
- 文本编辑器或 IDE(例如 Visual Studio Code)
项目初始化
首先,我们需要创建一个新的 Express 项目。您可以使用 Express 脚手架工具 express-generator 来快速创建一个项目目录。
npm install express-generator -g
express my-app
这将在当前目录下创建一个名为 my-app 的新项目。
数据库连接
接下来,我们需要连接到 MongoDB 数据库。
首先,安装 MongoDB 驱动程序:
npm install mongodb
然后,在项目中创建一个名为 db.js 的文件,并添加以下代码:
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<your-mongodb-username>:<your-mongodb-password>@<your-mongodb-cluster-url>/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
if (err) {
console.error(err);
process.exit(1);
}
console.log("Connected to MongoDB");
});
将
数据操作
现在,我们已经连接到 MongoDB 数据库,就可以进行数据操作了。
插入数据
const collection = client.db("my-app").collection("users");
collection.insertOne({ name: "John Doe", age: 30 }, (err, result) => {
if (err) {
console.error(err);
return;
}
console.log(`Inserted document with ID: ${result.insertedId}`);
});
查询数据
collection.find({ age: { $gt: 20 } }).toArray((err, result) => {
if (err) {
console.error(err);
return;
}
console.log(result);
});
更新数据
collection.updateOne({ name: "John Doe" }, { $set: { age: 31 } }, (err, result) => {
if (err) {
console.error(err);
return;
}
console.log(`Updated ${result.modifiedCount} document(s)`);
});
删除数据
collection.deleteOne({ name: "John Doe" }, (err, result) => {
if (err) {
console.error(err);
return;
}
console.log(`Deleted ${result.deletedCount} document(s)`);
});
API 接口
现在,我们已经掌握了 MongoDB 的基本操作,就可以创建 API 接口来与数据库进行交互了。
在项目中创建一个名为 routes/users.js 的文件,并添加以下代码:
const express = require('express');
const router = express.Router();
const db = require('../db');
router.get('/', async (req, res) => {
const users = await db.collection('users').find({}).toArray();
res.json(users);
});
router.post('/', async (req, res) => {
const user = req.body;
const result = await db.collection('users').insertOne(user);
res.json(result);
});
router.put('/:id', async (req, res) => {
const id = req.params.id;
const user = req.body;
const result = await db.collection('users').updateOne({ _id: id }, { $set: user });
res.json(result);
});
router.delete('/:id', async (req, res) => {
const id = req.params.id;
const result = await db.collection('users').deleteOne({ _id: id });
res.json(result);
});
module.exports = router;
在项目中创建一个名为 index.js 的文件,并添加以下代码:
const express = require('express');
const usersRouter = require('./routes/users');
const app = express();
app.use('/users', usersRouter);
app.listen(3000, () => {
console.log('Server is listening on port 3000');
});
运行项目
现在,您可以运行项目了:
npm start
项目将在端口 3000 上运行。
总结
本教程向您展示了如何使用 Express.js 和 MongoDB 快速搭建一个后端项目。您可以使用此项目作为基础,根据自己的需要进一步扩展和开发。