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

使用Node编写服务器接口

1.设置环境

打开终端输入如下命令:

mkdir apidemo
cd apidemo
npm init -y
npm install express
touch server.js

在server.js输入代码
 

const express = require('express');
const app = express();
const PORT = 3030;

// 中间件 - 解析JSON请求体
app.use(express.json());

// 示例数据存储
let users = [
  { id: 1, name: "Alice", age: 25 },
  { id: 2, name: "Bob", age: 30 },
];

// 首页路由
app.get('/', (req, res) => {
  res.send('Welcome to My API!');
});

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

// 根据ID获取单个用户
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: 'User not found' });
  res.json(user);
});

// 添加新用户
app.post('/users', (req, res) => {
  const { name, age } = req.body;
  if (!name || !age) return res.status(400).json({ error: 'Name and age are required' });
  const newUser = { id: users.length + 1, name, age };
  users.push(newUser);
  res.status(201).json(newUser);
});

// 更新用户
app.put('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: 'User not found' });

  const { name, age } = req.body;
  if (name) user.name = name;
  if (age) user.age = age;

  res.json(user);
});

// 删除用户
app.delete('/users/:id', (req, res) => {
  const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
  if (userIndex === -1) return res.status(404).json({ error: 'User not found' });

  users.splice(userIndex, 1);
  res.status(204).send();
});

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

2.运行服务器

打开终端输入

node server.js

3.验证接口

打开Postman查看请求结果

GET请求

POST请求


http://www.kler.cn/a/470636.html

相关文章:

  • 从零开始开发纯血鸿蒙应用之实现起始页
  • Selenium 八大元素定位方法及场景扩展
  • Mesa llvmpipe和softpipe对比
  • GOAT‘S AI早鸟报Part9
  • 嵌入式驱动开发详解10(MISC杂项实现)
  • C++二十三种设计模式之迭代器模式
  • 新型大数据架构之湖仓一体(Lakehouse)架构特性说明——Lakehouse 架构(一)
  • uniapp使用canvas生成订单小票图片
  • 【STM32】点击下载按钮时,提示No ST-LINK detected
  • 创建型模式4.原型模式
  • node.js版本管理之---npm 和 package.json
  • 图像识别-全连接层-卷积层-卷积层的计算-多输入通道场景-多输出通道场景-感受野-填充-VALID 与 SAME-stride-池化-CNN架构
  • 【C语言程序设计——选择结构程序设计】按从小到大排序三个数(头歌实践教学平台习题)【合集】
  • Backend - ADO.NET(C# 操作Oracle、PostgreSQL DB)
  • HCIA-Access V2.5_8_1_EPON原理_PON基本概念
  • 在Linux中,SElinux的作用是什么?如何临时和永久的更改SElinux上下文?
  • Linux buildroot和ubuntu的异同点
  • 支付宝手机网站支付
  • 两万字梳理 | 四足机器人的结构、控制及运动控制
  • VTK 鼠标+键盘重构
  • vulnhub potato靶机
  • HackMyVM-Again靶机的测试报告
  • 【智能算法】改进蚁狮优化算法【matlab】
  • arkTs数据存储
  • Visual Studio 2022 C++ gRPC 环境搭建
  • 六十三:七层负载均衡做了些什么?