Issue
How do I use chmod with Node.js?
There is a method in the package fs
, which should do this, but I don't know what it takes as the second argument.
fs.chmod(path, mode, [callback])
Asynchronous chmod(2). No arguments other than a possible exception are given to the completion callback.
fs.chmodSync(path, mode)
Synchronous chmod(2).
(from the Node.js documentation)
If I do something like
fs.chmodSync('test', 0755);
nothing happens (the file isn't changed to that mode).
fs.chmodSync('test', '+x');
doesn't work either.
I'm working on a Windows machine btw.
Solution
According to its sourcecode /lib/fs.js
on line 508:
fs.chmodSync = function(path, mode) {
return binding.chmod(pathModule._makeLong(path), modeNum(mode));
};
and line 203:
function modeNum(m, def) {
switch (typeof m) {
case 'number': return m;
case 'string': return parseInt(m, 8);
default:
if (def) {
return modeNum(def);
} else {
return undefined;
}
}
}
it takes either an octal number or a string.
e.g.
fs.chmodSync('test', 0755);
fs.chmodSync('test', '755');
It doesn't work in your case because the file modes only exist on *nix machines.
Answered By - qiao Answer Checked By - David Goodson (WPSolving Volunteer)