当前位置: 首页 > news >正文

使用 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 编写接口或者其他相关话题有任何疑问或见解,欢迎继续探讨。

相关文章:

  • SpringCloud整合seata,XA、AT、TCC、SAGA模式
  • 【人工智能】深度学习中的梯度检查:原理详解与Python实现
  • 中电联协议对接互联互通实现充电桩小程序成熟搭建
  • CAS单点登录(第7版)26.集成
  • 20250214 随笔 线程安全 线程不安全
  • 解锁 DeepSeek 超强能力:蓝耘智算平台搭建实战秘籍
  • 跟着李沐老师学习深度学习(八)
  • 详细介绍:使用 XMLHttpRequest 进行数据提交(完成用户注册功能)
  • Docker 部署 Nacos (图文并茂超详细)
  • SpringBoot+shardingsphere实现按月分表功能
  • python实现YouTube关键词爬虫(2025/02/11)
  • 【Spring】Spring MVC入门(二)
  • Linux第107步_Linux之PCF8563实验
  • java05(类、泛型、JVM、线程)---java八股
  • 前端与浏览器安全知识详解
  • 程序员升级进阶之路
  • spring security 超详细使用教程(接入springboot、前后端分离)
  • [创业之路-299]:图解金融体系结构
  • Linux 文件系统:恢复已删除文件的挑战
  • 【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
  • 殷墟出土鸮尊时隔50年首次聚首,北京新展“看·见殷商”
  • 人民日报和音:相信中国就是相信明天
  • 复旦建校120周年大型义诊举行,百余名专家服务市民超三千人次
  • 茅台总经理到访五粮液:面对白酒行业周期性调整,需要团结一心的合力
  • 一条铺过11年时光的科学红毯,丈量上海科创的“长宽高”
  • 爱德华多·阿拉纳宣誓就任秘鲁新总理