使用pdfmake生成PDF时Postman返回undefined问题求助
解决pdfmake接口返回undefined的问题
你遇到的undefined问题是因为服务器没有正确解析JSON格式的请求体,导致req.body.fname和req.body.lname无法获取到传入的值。
1. 修复app.js中的body-parser配置
你的app.js里,body-parser中间件代码被注释,且仅配置了x-www-form-urlencoded格式的解析,无法处理Postman发送的JSON请求体。需要做以下修改:
- 取消注释body-parser相关代码
- 添加
bodyParser.json()中间件,用于解析JSON格式的请求体
修改后的app.js代码:
const express = require('express'); const bodyParser = require('body-parser'); const path = require('path'); const port = 9003; const app = express(); // 设置静态文件夹 app.use(express.static(path.join(__dirname, 'public'))); // 配置body-parser中间件,同时支持urlencoded和JSON格式 app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // 新增该行,解析JSON请求体 // 首页路由 app.get('/', (req, res) => { // res.send('Hello World'); res.sendFile(path.join(__dirname, 'index.html')); // 推荐用sendFile,sendfile已废弃 }); const pdfRoute = require('./routes/pdfmake'); app.use('/pdfMake', pdfRoute); app.listen(port, () => { console.log(`Server running at http://localhost:${port}/`); });
2. 验证Postman请求设置
确保Postman的请求配置正确:
- 请求方式为POST,地址填写
http://localhost:9003/pdfMake/pdf - Body选择
raw,格式切换为JSON - 请求体内容:
{ "fname": "test", "lname":"run" }
- 保留自动生成的
Content-Type: application/json请求头,不要删除或修改
3. 测试验证
重启服务器后重新发送请求,PDF内容将正确显示为Hello test run, 'Nice to meet you!'
内容的提问来源于stack exchange,提问作者Zain Chris
相关产品推荐
相关产品推荐

