NodeJS API 响应在 fs.writefile 后失败

NodeJS API response fails after fs.writefile

我创建了一个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 失败并显示 错误:读取 ECONNRESET

OP 在评论中澄清说他使用 nodemon 到 运行 此代码。

问题是 nodemon 也在监视 .json 文件并重新启动服务器。因此更改 JSON 文件的请求失败并显示 Error: read ECONNRESET.

要防止 nodemon 在更改 .json 文件时重新启动服务器,请参阅 this
例如可以添加nodemon.json configuration file忽略./data目录(添加此文件后一定要重启nodemon):

{
    "ignore": ["./data"]
}