返回

从入门到精通:Express+MongoDB服务端开发终极教程

后端

前言:掌握全栈开发的利器 - Express+MongoDB

在现代Web开发领域,掌握全栈开发技术已成为必备技能之一。作为一名全栈工程师,您需要具备构建应用的前端和后端的能力。Express和MongoDB正是构建现代Web应用的理想选择。

Express是一个轻量级的Node.js框架,用于构建快速、可靠的Web应用。它提供了丰富的功能,包括路由、中间件和模板引擎等,帮助您快速搭建Web应用的骨架。

MongoDB是一个非关系型数据库,以其灵活性和扩展性而闻名。它采用JSON格式存储数据,非常适合处理海量数据和复杂的数据结构。

构建您的第一个Express应用

  1. 创建Express工程

    使用npm或yarn创建新的Express工程:

    npm init -y
    npm install express
    
  2. 编辑入口文件src/app.js

    在src目录下创建一个名为app.js的文件,并添加以下代码:

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    app.listen(3000, () => {
      console.log('Server is listening on port 3000');
    });
    
  3. 配置启动脚本package.json

    在package.json文件中添加以下脚本:

    "scripts": {
      "start": "node src/app.js"
    }
    
  4. 运行工程

    在终端中运行以下命令启动工程:

    npm start
    

    访问http://localhost:3000,您将看到"Hello World!"。

路由派发:构建应用的骨架

路由是将URL映射到处理请求的函数,Express提供了强大的路由功能,让您轻松构建应用的骨架。

  1. 定义路由模块

    在src目录下创建一个名为routes/index.js的文件,并添加以下代码:

    const express = require('express');
    const router = express.Router();
    
    router.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    module.exports = router;
    
  2. 定义首页路由src/views/indexRouter

    在src/views目录下创建一个名为indexRouter.js的文件,并添加以下代码:

    const express = require('express');
    const router = express.Router();
    
    router.use('/', require('./routes/index'));
    
    module.exports = router;
    
  3. 修改入口文件src/app.js

    在src/app.js文件中添加以下代码:

    const indexRouter = require('./views/indexRouter');
    
    app.use('/', indexRouter);
    

现在,当您访问http://localhost:3000时,将看到"Hello World!"。

构建REST API:与数据进行交互

REST API是一种基于HTTP协议的应用编程接口,它允许应用与服务器进行交互。Express是一个构建REST API的理想选择,它提供了丰富的中间件和工具来简化API开发。

  1. 安装MongoDB

    在终端中运行以下命令安装MongoDB:

    brew install mongodb-community@4.2
    
  2. 创建MongoDB数据库

    在终端中运行以下命令创建MongoDB数据库:

    mongosh
    

    在mongosh命令行中运行以下命令:

    use mydb
    db.createCollection('users')
    
  3. 定义数据模型

    在src/models/user.js文件中添加以下代码:

    const mongoose = require('mongoose');
    
    const userSchema = new mongoose.Schema({
      name: String,
      age: Number
    });
    
    const User = mongoose.model('User', userSchema);
    
    module.exports = User;
    
  4. 连接MongoDB数据库

    在src/db.js文件中添加以下代码:

    const mongoose = require('mongoose');
    
    mongoose.connect('mongodb://localhost:27017/mydb', {
      useNewUrlParser: true,
      useUnifiedTopology: true
    });
    
  5. 定义路由并处理REST API请求

    在src/routes/user.js文件中添加以下代码:

    const express = require('express');
    const router = express.Router();
    const User = require('../models/user');
    
    router.get('/', async (req, res) => {
      const users = await User.find();
      res.send(users);
    });
    
    router.post('/', async (req, res) => {
      const user = new User(req.body);
      await user.save();
      res.send(user);
    });
    
    router.put('/:id', async (req, res) => {
      const user = await User.findByIdAndUpdate(req.params.id, req.body);
      res.send(user);
    });
    
    router.delete('/:id', async (req, res) => {
      await User.findByIdAndDelete(req.params.id);
      res.send({ message: 'User deleted successfully' });
    });
    
    module.exports = router;
    
  6. 修改入口文件src/app.js

    在src/app.js文件中添加以下代码:

    const userRouter = require('./routes/user');
    
    app.use('/api/users', userRouter);
    

现在,您可以通过以下URL访问REST API:

  • http://localhost:3000/api/users:获取所有用户
  • http://localhost:3000/api/users/:id:获取指定ID的用户
  • http://localhost:3000/api/users:创建新用户
  • http://localhost:3000/api/users/:id:更新指定ID的用户
  • http://localhost:3000/api/users/:id:删除指定ID的用户

结语:掌握全栈开发的利器 - Express+MongoDB

通过本教程,您已经了解了如何使用Express和MongoDB构建全栈Web应用。您学会了如何创建Express应用、定义路由、构建REST API,以及如何连接和操作MongoDB数据库。

Express和MongoDB是构建现代Web应用的强大工具,掌握了它们,您将能够构建出更强大、更可靠的应用。