繁体   English   中英

fs.writefile 后 NodeJS API 响应失败

[英]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文件时重新启动服务器,请参阅
例如可以添加nodemon.json配置文件忽略./data目录(添加此文件后务必重启nodemon ):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM