gpt4 book ai didi

javascript - NodeJS 等待文件创建

转载 作者:行者123 更新时间:2023-12-03 02:36:17 27 4
gpt4 key购买 nike

正在编写一个 Node js 应用程序,我想在其中等待文件创建。想知道是否有比我更快、更准确、更好的方法。

我的代码:

const fs = require("fs");
try { // Create files directory if not exists
if (!fs.existsSync('./files'))
fs.mkdirSync("./files")
} catch (e) { logger.error("error:" + e) }

// Create unique temporary files for each user
fs.readFile("./file.js", 'utf8', (err, data) => {
if (err)
logger.error("error" + err)
fs.writeFile(`./files/file.js`, data, (err) => {
if (err)
logger.error("error" + err)
logger.warn('successfully created')
});
while (!fs.existsSync(`./files/file.js`))
setTimeout(() => { }, 5000)

if (fs.existsSync(`./files/file.js`)) {
setTimeout(async () => {
// My code that should be executed only once when the file is created..then delete the file
}, 1000);
}
})

我基本上想要实现的是,我想复制文件的内容并为每个用户创建另一个唯一的临时文件。我想等到文件被创建,如果文件被创建,我只想执行某行代码一次,然后删除文件。

谢谢。

最佳答案

您应该将代码放在 writeFile 中像这样的回调:

const fs = require("fs");

try { // Create files directory if not exists
if (!fs.existsSync('./files'))
fs.mkdirSync("./files")
} catch (e) {
logger.error("error:" + e)
}

// Create unique temporary files for each user
fs.readFile("./file.js", 'utf8', (err, data) => {
if (err)
logger.error("error" + err)

fs.writeFile(`./files/file.js`, data, (err) => {
if (err)
logger.error("error" + err)

logger.warn('successfully created')
// Your code that should be executed only once when the file is created..then delete the file
});
})

如果 Javascript 的异步特性确实不适合您,那么您也可以使用 writeFileSync .

关于javascript - NodeJS 等待文件创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com