我必须创建一个名为stuff的目录,并将流写入"stuff“目录中的一个文本文件中。但是,因为NodeJs中的代码不是以串行方式执行的,所以我得到了一个错误,指出该目录不存在。任何帮助都将不胜感激。代码粘贴在下面。
var http = require("http");
var fs = require("fs");
var readStream = fs.createReadStream(__dirname+"/readMe.txt","UTF-8");
var writeStream;
fs.mkdir("stuff",function(){
writeStream = fs.createWriteStream(__dirname+"/stuff/writeMe.txt");
});
readStream.on("data",function(chunk){
writeStream.write(chunk);
});发布于 2017-05-06 22:43:56
当您调用文件夹创建函数时,它会立即返回。但回调函数仅在文件夹已创建(或创建失败)时执行。
fs.mkdir("stuff",function(){
// executed after folder creation
writeStream = fs.createWriteStream(__dirname+"/stuff/writeMe.txt");
});
// executed instantly在您当前的代码中,当您尝试写入该文件夹时,它尚未创建,并且writeStream为undefined。
因此,您需要在创建文件夹后对其进行写入:
fs.mkdir("stuff",function(){
writeStream = fs.createWriteStream(__dirname+"/stuff/writeMe.txt");
readStream.on("data",function(chunk){
writeStream.write(chunk);
});
});https://stackoverflow.com/questions/43821600
复制相似问题