这是异步还是阻止代码?

时间:2016-09-12 07:04:52

标签: javascript json node.js

如果我JSON.stringify内有writeFile,这是阻止代码。让我们说它是大文件。这就是我在第二次按下按钮多次触发此api端点时收到错误conection refused的原因吗?

 app.patch('/', function(req, res) {
...some query
fs.writeFile(path.join(__dirname, "../../") + 'Data/deals.json', JSON.stringify(tickets), function (err) {
        if (err) {
            console.log(err);
            return res.status(400).json({error: err});
        }
        return res.status(200).json({success: true, message: 'Deal Updated successfully'});
    });
})

1 个答案:

答案 0 :(得分:0)

编辑#1:

JSON.stringify将对象解析为字符串同步。但是你错过了你在JSON.stringify函数中调用patch而不是在writeFIle中。

原始

它是Async。如果要同步编写文件,则必须使用writeFileSync

有关详细信息,请访问Node.js fs Docs

实施例

// Async callback will called after finish
// Non-Blocking
fs.writeFile(file, data[, options], callback)

// write to file with return the result, may throw exception    
// Blocking
fs.writeFileSync(file, data[, options])