最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

等待创建文件以在node.js中读取它

IT培训 admin 5浏览 0评论

等待创建文件以在node.js中读取它

我正在尝试使用文件创建和删除作为python和nodejs之间的数据传输方法(我知道这不是最好的方法。)。该程序的python端工作正常,因为我对python 3相当熟悉,但是我无法使node.js脚本正常工作。

我尝试了各种方法来检测何时创建文件,主要是使用try {} catch {},但没有一个起作用。

function fufillRequest(data) {
  fs.writeFile('Response.txt', data)
}

while(true) {
  try {
    fs.readFile('Request.txt', function(err,data) {
      console.log(data);
    });
  } catch {

  }
}

程序应该看到文件已创建,读取了文件的内容,将其删除,然后创建并写入响应文件。

回答如下:

您可以使用循环计时器或fs.watch()来监视文件出现的时间。

这是一个重复计时器的外观:

const checkTime = 1000;
const fs = require('fs`);

function check() {
   setTimeout(() => {
       fs.readFile('Request.txt', 'utf8', function(err, data) {
          if (err) {
              // got error reading the file, call check() again
              check();
          } else {
              // we have the file contents here, so do something with it
              // can delete the source file too
          }
       });
   }, checkTime)
}

check();

注意:无论创建该文件的任何进程,在写入时都应该使用独占访问模式,这样就不会在其他进程完成写入之前就创建一个开始读取的竞争条件。

等待创建文件以在node.js中读取它

我正在尝试使用文件创建和删除作为python和nodejs之间的数据传输方法(我知道这不是最好的方法。)。该程序的python端工作正常,因为我对python 3相当熟悉,但是我无法使node.js脚本正常工作。

我尝试了各种方法来检测何时创建文件,主要是使用try {} catch {},但没有一个起作用。

function fufillRequest(data) {
  fs.writeFile('Response.txt', data)
}

while(true) {
  try {
    fs.readFile('Request.txt', function(err,data) {
      console.log(data);
    });
  } catch {

  }
}

程序应该看到文件已创建,读取了文件的内容,将其删除,然后创建并写入响应文件。

回答如下:

您可以使用循环计时器或fs.watch()来监视文件出现的时间。

这是一个重复计时器的外观:

const checkTime = 1000;
const fs = require('fs`);

function check() {
   setTimeout(() => {
       fs.readFile('Request.txt', 'utf8', function(err, data) {
          if (err) {
              // got error reading the file, call check() again
              check();
          } else {
              // we have the file contents here, so do something with it
              // can delete the source file too
          }
       });
   }, checkTime)
}

check();

注意:无论创建该文件的任何进程,在写入时都应该使用独占访问模式,这样就不会在其他进程完成写入之前就创建一个开始读取的竞争条件。

发布评论

评论列表 (0)

  1. 暂无评论