Move files with node.js

Let's say I have a file "/tmp/sample.txt" and I want to move it to "/var/www/mysite/sample.txt" which is in a different volume.

How can i move the file in node.js?

I read that fs.rename only works inside the same volume and util.pump is already deprecated.

What is the proper way to do it? I read about stream.pipe, but I couldn't get it to work. A simple sample code would be very helpful.

Use the mv module:

var mv = require('mv');

mv('source', 'dest', function(err) {
    // handle the error
});

If on Windows and don't have 'mv' module, can we do like

var fs = require("fs"),
    source = fs.createReadStream("c:/sample.txt"),
    destination = fs.createWriteStream("d:/sample.txt");

source.pipe(destination, { end: false });
source.on("end", function(){
    fs.unlinkSync("C:/move.txt");
});

The mv module, like jbowes stated, is probably the right way to go, but you can use the child process API and use the built-in OS tools as an alternative. If you're in Linux use the "mv" command. If you're in Windows, use the "move" command.

var exec = require('child_process').exec;
exec('mv /temp/sample.txt /var/www/mysite/sample.txt', 
  function(err, stdout, stderr) {
    // stdout is a string containing the output of the command.
});