Bootstrap

使用 Express 写接口

在现代 Web 开发中,构建高效的 RESTful API 是非常重要的。Node.js 和其上的 Express 框架为开发者提供了一种简便而强大的方式来创建这些接口。本文将详细介绍如何使用 Express 来编写和部署一个简单的 RESTful API,涵盖从安装到实现增删改查(CRUD)操作的全过程。

准备工作

安装 Node.js 和 npm

首先确保你的开发环境中已安装了 Node.js 和 npm。你可以通过以下命令检查是否已经安装:

node -v
npm -v

如果没有安装,请访问 Node.js 官网下载并安装适合你操作系统的版本。

创建项目

接下来,创建一个新的项目目录,并初始化一个新的 npm 项目:

mkdir my-api
cd my-api
npm init -y

这会生成一个 package.json 文件,记录项目的依赖信息等。

安装 Express

现在可以安装 Express 到你的项目中了:

npm install express --save

同时建议安装 Nodemon,它可以在代码更改时自动重启服务器,非常适合开发阶段使用:

npm install nodemon --save-dev

更新 package.json 中的启动脚本,以便使用 Nodemon:

"scripts": {
    "start": "nodemon app.js"
}

编写第一个 API 接口

创建一个名为 app.js 的文件,并添加以下代码来设置一个基本的 Express 应用程序:

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

// 解析 JSON 请求体
app.use(express.json());

// 示例数据
let items = [
    { id: 1, name: 'Item One' },
    { id: 2, name: 'Item Two' }
];

// 获取所有项
app.get('/items', (req, res) => {
    res.json(items);
});

// 根据 ID 获取单个项
app.get('/items/:id', (req, res) => {
    const item = items.find(i => i.id === parseInt(req.params.id));
    if (!item) return res.status(404).send('Item not found.');
    res.json(item);
});

// 添加新项
app.post('/items', (req, res) => {
    const item = {
        id: items.length + 1,
        name: req.body.name
    };
    items.push(item);
    res.status(201).json(item);
});

// 更新项
app.put('/items/:id', (req, res) => {
    const item = items.find(i => i.id === parseInt(req.params.id));
    if (!item) return res.status(404).send('Item not found.');

    item.name = req.body.name;
    res.json(item);
});

// 删除项
app.delete('/items/:id', (req, res) => {
    const index = items.findIndex(i => i.id === parseInt(req.params.id));
    if (index === -1) return res.status(404).send('Item not found.');

    items.splice(index, 1);
    res.sendStatus(204);
});

// 启动服务器
app.listen(port, () => console.log(`Server running on port ${port}`));

这段代码实现了对 /items 路径下的 CRUD 操作。

测试 API

使用 Postman 或 Curl

你可以使用 Postman 这样的工具来测试你的 API,或者直接在终端中使用 curl 命令进行测试。

例如,添加一个新的项目:

curl -X POST http://localhost:3000/items -H "Content-Type: application/json" -d '{"name":"New Item"}'

获取所有项目:

curl http://localhost:3000/items

使用 JavaScript 测试

也可以在同一个项目里新建一个测试文件,比如 test.js,利用 Axios 或 Fetch API 来测试你的接口。

const axios = require('axios');

async function testApi() {
    try {
        // 添加新项
        let response = await axios.post('http://localhost:3000/items', { name: 'Test Item' });
        console.log(response.data);

        // 获取所有项
        response = await axios.get('http://localhost:3000/items');
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
}

testApi();

结语

感谢您的阅读!如果您对使用 Express 编写接口或者其他相关话题有任何疑问或见解,欢迎继续探讨。

;