如何用Node.js读取JSON文件并发起API POST请求?
用Node.js结合外部JSON文件发起API POST请求实现方案
运行环境
- Ubuntu 22.04
- Node.js v19.2.0
- npm 8.19.3
实现逻辑
通过两个文件完成功能:order.json存储订单原始数据,app.js读取该JSON文件,将数据转换为API要求的格式后发起POST请求。具体流程为:
- 借助Node.js的
fs模块读取同级目录下的order.json文件 - 解析JSON数据,将订单条目映射为API所需的
order_line格式 - 构造完整请求体,添加请求头后发送POST请求至目标API地址
app.js 代码实现
var myHeaders = new Headers(); myHeaders.append("api-key", "123"); myHeaders.append("Content-Type", "text/plain"); myHeaders.append("Cookie", "session_id=123"); // 读取order.json文件 var fs = require('fs') fs.readFile('order.json', 'utf8', (err, data) => { if (err) throw err let orders = JSON.parse(data) let order_line = orders.map(o => ([0, 0, { product_id: +o.product_id, product_uom_qty: +o.product_uom_qty, price_unit: +o.price_unit }])); let body = { partner_id: 150, user_id: 6, workflow_id: 1, order_line } let raw = JSON.stringify(body); console.log(raw); var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' } fetch("https://mysite/api/sale.order/create?api_key=123", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)) })
order.json 数据示例
[ { "sku": "123", "product_id": "6", "price_unit": "9.7", "product_uom_qty": "1.0000" }, { "sku": "456", "product_id": "7", "price_unit": "9.8", "product_uom_qty": "1.0000" } ]
内容的提问来源于stack exchange,提问作者Jhon Scott
相关产品推荐
相关产品推荐

