【发布时间】:2021-07-03 01:48:53
【问题描述】:
我创建了一个 API,我想创建一个文件,在文件写入后,请求一个日志 API,在其响应后,相对于用户响应。
我已将代码简化如下:
const express = require('express');
const router = express.Router();
const fetch = require("node-fetch");
const util = require('util');
const fs = require("fs-extra")
router.get('/works/', (req, res) => {
logData(res)
})
router.get('/fails/', (req, res) => {
let t = Date.now();
const writeFile = util.promisify(fs.writeFile)
writeFile(`./data/${t}.json`, 'test').then(function(){
logData(res)
})
})
function logData(res) {
return new Promise(resolve => {
fetch('https://webhook.site/44dad1a5-47f6-467b-9088-346e7222d7be')
.then(response => response.text())
.then(x => res.send('x'));
});
}
module.exports = router
/works/ API 工作正常,
但 /fails/ API 失败并出现 Error: read ECONNRESET
【问题讨论】:
-
这能回答你的问题吗? How do I debug error ECONNRESET in Node.js?
-
@nbokmans 不,这没用,我认为 Promise 链接可能有问题
-
@SalmanSharati 您是否需要带有 promise 的正确 fs 模块?请说明您是如何导入
fs模块的。服务器端是否显示任何错误? -
你如何运行你的代码?如果您使用的是
nodemon,它将在您更改此项目中的.json文件后重新启动服务器。确保您的服务器没有重新启动。 -
writeFilefromfs-extra已经支持承诺。你不需要promisify它。服务器端有控制台输出吗?如果是,请添加。
标签: javascript node.js api promise fs