返回

从零开始打造 Express + MongoDB 后端项目

前端

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 用户名、密码和集群 URL。

数据操作

现在,我们已经连接到 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 快速搭建一个后端项目。您可以使用此项目作为基础,根据自己的需要进一步扩展和开发。