Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用nodejs加载和保存多个文件?_Javascript_Node.js - Fatal编程技术网

Javascript 如何使用nodejs加载和保存多个文件?

Javascript 如何使用nodejs加载和保存多个文件?,javascript,node.js,Javascript,Node.js,我需要使程序在nodejs采取其他网站的列表文件,并保存在我的机器 例如: 函数saveLocalFiles(文件){ for(文件中的变量i){ var file=fs.createWriteStream(path.join(uu dirname,“media/”+files[i].file)); console.log(URL+files[i].FILE); http.get(URL+文件[i]。文件,函数(响应){ 管道(文件); on('finish',function(){ file

我需要使程序在nodejs采取其他网站的列表文件,并保存在我的机器

例如:

函数saveLocalFiles(文件){
for(文件中的变量i){
var file=fs.createWriteStream(path.join(uu dirname,“media/”+files[i].file));
console.log(URL+files[i].FILE);
http.get(URL+文件[i]。文件,函数(响应){
管道(文件);
on('finish',function(){
file.close(()=>{
log(“结束->”+文件[i].FILE);
});
});
})
}

}
使用承诺并尝试将代码分为两个功能:

function saveLocalFiles(files) {
    Promise
        .all(files.map(file => saveLocalFile((URL, file.FILE))))
        .then((files) => {
            console.log(files);
        })
 }

function saveLocalFile(URL, FILE) {
    return new Promise((resolve) => {
        var file = fs.createWriteStream(path.join(__dirname, "media/" + FILE));
        console.log(URL + FILE);
        http.get(URL + FILE, function (response) {
            response.pipe(file);
            file.on('finish', function () {
                file.close(() => {
                    console.log("ends ->" + FILE);
                    resolve(FILE);
                });
            });
        })
    })
}

使用承诺并尝试将代码拆分为两个函数:

function saveLocalFiles(files) {
    Promise
        .all(files.map(file => saveLocalFile((URL, file.FILE))))
        .then((files) => {
            console.log(files);
        })
 }

function saveLocalFile(URL, FILE) {
    return new Promise((resolve) => {
        var file = fs.createWriteStream(path.join(__dirname, "media/" + FILE));
        console.log(URL + FILE);
        http.get(URL + FILE, function (response) {
            response.pipe(file);
            file.on('finish', function () {
                file.close(() => {
                    console.log("ends ->" + FILE);
                    resolve(FILE);
                });
            });
        })
    })
}