How do I move files in node.js? How do I move files in node.js? express express

How do I move files in node.js?


According to seppo0010 comment, I used the rename function to do that.

http://nodejs.org/docs/latest/api/fs.html#fs_fs_rename_oldpath_newpath_callback

fs.rename(oldPath, newPath, callback)

Added in: v0.0.2

oldPath <String> | <Buffer>newPath <String> | <Buffer>callback <Function>

Asynchronous rename(2). No arguments other than a possible exception are given to the completion callback.


Using nodejs natively

var fs = require('fs')var oldPath = 'old/path/file.txt'var newPath = 'new/path/file.txt'fs.rename(oldPath, newPath, function (err) {  if (err) throw err  console.log('Successfully renamed - AKA moved!')})

(NOTE: "This will not work if you are crossing partitions or using a virtual filesystem not supporting moving files. [...]" – Flavien Volken Sep 2 '15 at 12:50")


This example taken from: Node.js in Action

A move() function that renames, if possible, or falls back to copying

var fs = require('fs');module.exports = function move(oldPath, newPath, callback) {    fs.rename(oldPath, newPath, function (err) {        if (err) {            if (err.code === 'EXDEV') {                copy();            } else {                callback(err);            }            return;        }        callback();    });    function copy() {        var readStream = fs.createReadStream(oldPath);        var writeStream = fs.createWriteStream(newPath);        readStream.on('error', callback);        writeStream.on('error', callback);        readStream.on('close', function () {            fs.unlink(oldPath, callback);        });        readStream.pipe(writeStream);    }}