2016-07-09 5 views
0

내가 디렉토리에 파일을 이동 fs.move()을 시도, 나는 다음과 같은 오류 얻을 :이 파일 bscBot.js에 내 코드Node.JS를 사용하여 파일을 디렉토리로 이동하는 방법은 무엇입니까?

/home/decuge31/node_modules/fs-extra/lib/move/index.js:19                             | 
    var shouldMkdirp = ('mkdirp' in options) ? options.mkdirp : true                           | 
           ^                                  | 
TypeError: Cannot use 'in' operator to search for 'mkdirp' in undefined                          | 
    at Object.mv [as move] (/home/decuge31/node_modules/fs-extra/lib/move/index.js:19:35)                     | 
    at Object.<anonymous> (/home/decuge31/bscBot.js:8:4)                              | 
    at Module._compile (module.js:456:26)                                 | 
    at Object.Module._extensions..js (module.js:474:10)                              | 
    at Module.load (module.js:356:32)                                  | 
    at Function.Module._load (module.js:312:12)                                | 
    at Function.Module.runMain (module.js:497:10)                               | 
    at startup (node.js:119:16)                                    | 
    at node.js:902:3 

입니다 :

var fs = require('fs-extra'); // This imports the fs-extra dependency 
var request = require('request'); // This imports the request dependency 

fs.ensureDir('css'); // This creates a folder called css 

request('http://agar.io/css/master.css').pipe(fs.createWriteStream('master.css')); // This downloads the master.css file 

fs.move('master.css', 'css'); // This moves master.css to the specified directory, in this case it is called css 

답변

1
var fs = require('fs-extra'); 
var request = require('request'); 
fs.ensureDir('css'); 
request('http://agar.io/css/master.css').pipe(fs.createWriteStream('master.css')); 
fs.move('master.css', 'css/master.css', function (err) { 
    if (err) 
     console.error(err); 
}); 
+0

을 제공합니다 . – doubleui

+1

이 작업은 방금 테스트되었습니다. 콜백을 생략하는 것과 관련된 문제 인 것 같습니다. 어쨌든 오류를 기록하고 스스로 도와야합니다. –

+0

@udidu의 대답은 정확하고 오류없이 작동합니다 : 요청은 비동기이므로 끝까지 기다려야합니다. 움직이기 전에. 어쨌든 다음과 같은 이름으로 이동할 수 있습니다 :'fs.move ('master.css', 'css/NEWNAME.css', function (err) {if (err) console.error (err);});' – doubleui

0

는 시도 fs.move('master.css', 'css/master.css')

+0

스틸 ('fs.unlink')을 다시 실행에 당신의'CSS/master.css' 제거하는 것을 잊지 마세요 나에게 같은 오류 –

1

파일을 이동하기 전에 스트림에 쓰기 위해 파이프가 끝날 때까지 기다려야합니다.

이 작업을 시도 할 수 있습니다 :

var fs = require('fs-extra') // This imports the fs-extra dependency 
 
var request = require('request') // This imports the request dependency 
 

 
fs.ensureDirSync('css') // This creates a folder called css 
 

 
var stream = request('http://agar.io/css/master.css').pipe(fs.createWriteStream('master.css')) // This downloads the master.css file 
 

 
stream.on('end', function() { 
 
     fs.move('master.css', 'css') 
 
});

관련 문제