node.js中实现GET&POST请求

创建基本的服务器

javascript 复制代码
const express = require('express');
const indexRouter = require('./router'); // 引入路由
const app = express();
const port = 3000;
// 挂载路由
app.use('/api', indexRouter);
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

创建路由文件

javascript 复制代码
const express = require('express');
const router = express.Router();

module.exports = router;

实现GET请求

javascript 复制代码
// 处理GET请求
router.get('/get', (req, res) => {
  // 通过 req.query 客户端发送到服务器的数据
  const query = req.query;
  console.log(query, 'query')
  res.send({
    code: 0, // 0: 请求成功  -1: 请求失败
    msg: 'GET请求成功', // 请求的状态描述
    data: query, // 服务器像客户端返回数据
  });
});

实现POST请求

方式1:form-data,Express默认不会解析form-data,因为它通常用于文件上传,需要额外的处理。你可以使用multer这个中间件来处理multipart/form-data(也就是form-data)类型的请求。multer是专门为Express设计的,用于处理多部分/表单数据,这包括上传文件。

javascript 复制代码
// 设置multer存储选项(这里只是演示,实际上你可能需要配置磁盘存储或其他选项)
const storage = multer.memoryStorage(); 
const upload = multer({ storage: storage });
javascript 复制代码
// 处理POST请求
router.post('/upload', upload.single('file'), (req, res) => {
   // 通过 req.query 客户端发送到服务器的数据
   const body = req.body;
   console.log(body, 'body')
   res.send({
     code: 0, // 0: 请求成功  -1: 请求失败
     msg: 'POST请求成功', // 请求的状态描述
     data: body, // 服务器像客户端返回数据
   });
});

方式2:urlencoded,想要获取url-encoded请求体的数据,需要引入对应的中间件。

javascript 复制代码
// 配置解析表单数据的中间件
app.use(express.urlencoded({extended: false}))
javascript 复制代码
// 处理POST请求
router.post('/post', (req, res) => {
  // 通过 req.query 客户端发送到服务器的数据
  const body = req.body;
  console.log(body, 'body')
  res.send({
    code: 0, // 0: 请求成功  -1: 请求失败
    msg: 'POST请求成功', // 请求的状态描述
    data: body, // 服务器像客户端返回数据
  });
});

全部代码

index.js

javascript 复制代码
const express = require('express');
const indexRouter = require('./router'); // 引入路由
const app = express();
const port = 3000;
// 配置解析表单数据的中间件
app.use(express.urlencoded({extended: false}))
// 挂载路由
app.use('/api', indexRouter);
// 启动服务器
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

router.js

javascript 复制代码
const express = require('express');
const multer = require('multer');
const router = express.Router();
// 设置multer存储选项(这里只是演示,实际上你可能需要配置磁盘存储或其他选项)
const storage = multer.memoryStorage(); // 使用内存存储,适用于小文件或不需要持久化的场景
const upload = multer({ storage: storage });
// 处理GET请求
router.get('/get', (req, res) => {
  // 通过 req.query 客户端发送到服务器的数据
  const query = req.query;
  console.log(query, 'query')
  res.send({
    code: 0, // 0: 请求成功  -1: 请求失败
    msg: 'GET请求成功', // 请求的状态描述
    data: query, // 服务器像客户端返回数据
  });
});
// 处理POST请求
router.post('/upload', upload.single('file'), (req, res) => {
   // 通过 req.query 客户端发送到服务器的数据
   const body = req.body;
   console.log(body, 'body')
   res.send({
     code: 0, // 0: 请求成功  -1: 请求失败
     msg: 'POST请求成功', // 请求的状态描述
     data: body, // 服务器像客户端返回数据
   });
});
// 处理POST请求
router.post('/post', (req, res) => {
  // 通过 req.query 客户端发送到服务器的数据
  const body = req.body;
  console.log(body, 'body')
  res.send({
    code: 0, // 0: 请求成功  -1: 请求失败
    msg: 'POST请求成功', // 请求的状态描述
    data: body, // 服务器像客户端返回数据
  });
});
module.exports = router;
相关推荐
myzzb12 分钟前
中等难度——python实现电子宠物和截图工具
前端·图像处理·python·宠物
Ttang2323 分钟前
前端vue框架(2)——vue的基础语法(上)
前端·javascript·vue.js
放逐者-保持本心,方可放逐24 分钟前
vue中的那些事(刷新+key+v-if,v-for)
前端·javascript·vue.js
码农六六27 分钟前
如何使用 Vue 自定义指令实现元素拖拽支撑横向和纵向拖拽
前端·javascript·vue.js
杨超越luckly29 分钟前
HTML应用指南:利用GET请求获取星巴克门店数据
前端·数据挖掘·数据分析·html·big data
Ying(英子)34 分钟前
前端实现doc文件预览的三种方式
前端·文件预览·doc文件预览·docx-preview·vue-office·mammoth·前端文件预览
明月看潮生37 分钟前
青少年编程与数学 02-006 前端开发框架VUE 23课题、UI框架
前端·javascript·vue.js·ui·青少年编程·编程与数学
qq_544329171 小时前
需求13:审批流中,节点删除保存失败的bug
前端·javascript·typescript·bug
香香甜甜的辣椒炒肉1 小时前
JavaScript基础(1)
前端
君臣Andy1 小时前
使用 `npm install` 时遇到速度很慢的问题
前端·npm·node.js