我必须创建一个名为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);
});
答案 0 :(得分:0)
当您调用文件夹创建功能时,它会立即返回。但只有在创建文件夹(或创建失败)时才会执行回调函数。
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);
});
});