You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Postman向Node.js的Express接口上传data.json文件并获取内容

解决方案

问题根因

  1. Express 默认不解析 multipart/form-data 格式的请求体,所以直接读取 req.body 只会得到空对象
  2. 你的代码中既没有引入文件上传处理中间件,也没有定义 data 变量,根本无法获取到上传的文件内容

方案1:继续使用form-data格式上传(适合需要上传文件的场景)

  • 第一步:安装Express官方推荐的文件上传中间件multer
npm install multer
  • 第二步:修改接口代码,配置内存存储模式直接读取文件内容,不需要写入本地磁盘
const express = require('express');
const multer = require('multer');
const app = express();

// 配置multer用内存存储,直接读取buffer不存盘
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });

// upload.single参数对应Postman form-data里的文件字段名,示例用的字段名为file
app.post('/upload', upload.single('file'), function (req, response) {
  // 将文件buffer转字符串后解析为JSON,得到通讯录数组
  const contactList = JSON.parse(req.file.buffer.toString());
  // 这里可以把contactList赋值给你需要存储的全局/局部变量
  console.log(contactList);
  response.send(contactList);
});

app.listen(3000, () => console.log('服务运行在3000端口'));
  • 第三步:检查Postman配置
    • Body选择form-data,Key列填写file(和代码中参数保持一致),Key类型切换为File(不要用默认的Text)
    • Value列选择桌面的data.json文件,直接发送请求即可

方案2:直接传JSON内容(更适合纯JSON数据场景,无需额外依赖)

如果不需要走文件上传的形式,可以直接把JSON内容放到请求体里传输,代码更简单:

  • Postman配置:Body选择raw,格式下拉选JSON,把data.json里的所有内容复制粘贴到请求体输入框
  • 接口代码:
const express = require('express');
const app = express();
// 开启JSON请求体解析
app.use(express.json());

app.post('/upload', function (req, response) {
  const contactList = req.body;
  console.log(contactList);
  response.send(contactList);
});

app.listen(3000, () => console.log('服务运行在3000端口'));

内容的提问来源于stack exchange,提问作者mr. chouhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:18:03