2016-08-30 7 views
2

ファイルが既に場所xyzに存在する場合は、ファイルをabcから場所xyzに移動しようとしています。新しいファイルを保存します。ファイルは、それが単にファイルを削除し、他には何もしませんが存在する場合ファイルが存在する場合はファイルを移動する

は、ここに私のコード

const promises = { 
    deleteFile: path => { 
    return new Promise((resolve, reject) => { 
     const fs = require('fs'); 

     fs.stat(path, (err, stat) => { 
     if (err === null) { 

      fs.unlink(path, err => { 
      if (err) { return reject(err) } 
      resolve(); 
      }) 
     } else if(err.code == 'ENOENT') { 
      console.log('File does not exist'); 
      resolve(); 
     } else { 
      reject(err); 
     } 
     }); 
    }); 
    }, 
    copyFile: (from, to) => { 
    return new Promise((resolve, reject)=> { 
     copyFile(from, to, (err) => { 
     if (err) { return reject(err); } 
     console.log(`Finished writing file ${to}`); 
     resolve(); 
     }) 
    }) 
    } 
} 

const copyFile = (from, to, overallCb) => { 
    const fs = require('fs'); 
    const rs = fs.createReadStream(from) 
    const ws = fs.createWriteStream(to) 

    let cbCalled = false; 
    function done (err) { 
     overallCb(err); 
     cbCalled = true; 
    } 

    rs.on('error', (err) => { 
     done(err); 
    }) 

    ws.on('error', (err) => { 
     done(err); 
    }) 
    rs.pipe(ws); 
    } 
; 

const OUTPUT_PATH = `./js/libs/` 
    , _NODE_MODULES = './node_modules/' 
    , filePath = `${_NODE_MODULES}somePathToAFile` 
    ; 

promises.deleteFile(`${OUTPUT_PATH}someFile.min.js`) 
    .then(promises.copyFile(filePath, `${OUTPUT_PATH}someFile.min.js`)) 
    .then(words => { 
    console.log('**** done doing things ****'); 
    }) 
    .catch(error => { console.log(`ERROR`, error); }) 

です。

ファイルが存在しない場合、すべて正常に動作します。

何が間違っているのですか?

答えて

0

私はここに私は上記のコード

'use strict'; 

const promises = { 
    deleteFile: path => { 
    return new Promise((resolve, reject) => { 
     const fs = require('fs'); 

     fs.stat(path, (err, stat) => { 
     if (err === null) { 

      fs.unlink(path, err => { 
      if (err) { return reject(err) } 
      resolve(`Removing document at ${path}`); 
      }) 
     } else if(err.code === 'ENOENT') { 
      resolve('File does not exist'); 
     } else { 
      reject(err); 
     } 
     }); 
    }); 
    }, 
    copyFile: (from, to) => { 
    return new Promise((resolve, reject) => { 
     copyFile(from, to, (err) => { 
     if (err) { return reject(err); } 
     resolve(`Finished writing file ${to}`); 
     }) 
    }) 
    } 
} 

const copyFile = (from, to, overallCb) => { 
    const fs = require('fs'); 
    const rs = fs.createReadStream(from) 
    const ws = fs.createWriteStream(to) 

    let cbCalled = false; 
    function done (err) { 
     overallCb(err); 
     cbCalled = true; 
    } 

    rs.on('error', done) 
    ws.on('error', done) 
     .on('close', done) 

    rs.pipe(ws); 
    } 
; 

const OUTPUT_PATH = './js/libs/' 
    , _NODE_MODULES = './node_modules/' 
    , filePath  = `${_NODE_MODULES}somePathToAFile` 
    ; 


promises.deleteFile(`${OUTPUT_PATH}someFile.min.js`) 
.then(msg => { 
    console.log(msg) 
    return promises.copyFile(filePath, `${OUTPUT_PATH}someFile.js`) 
}) 
.then(msg => { 
    console.log(msg) 
}) 
.catch(err => { // Do errory things} 
の作業バージョンである将来のために...私のコードでは、いくつかの約束のエラーが発生しました
関連する問題