I have a simple route defined with express.js
:
exports.save = function (request, response) { var file = request.body.file; var content = request.body.content; var saved = false; if (fs.existsSync( file )) { saved = fs.writeFileSync(file, content, 'utf8'); } console.log( saved ); // undefined or false, never true response.send(saved ? 200 : 500, saved ? 'saved' : 'error'); // 500, error };
Is if (typeof saved === 'undefined') saved = true;
the only option? Feels hacky.
writeFileSync doesn't return anything. It throws an Error object if something goes wrong. So you should write fs.
The only difference between writeFile and writeFileSync is in catching and handling the errors; otherwise, all parameters mentioned are available in both functions.
According to node.js source-code fs.writeFileSync
doesn't return anything.
It throws an Error
object if something goes wrong. So you should write fs.writeFileSync(file, content, 'utf8');
within a try-catch
block.
fs.writeFileSync does not return any value, if there is no exception happens that means the save succeeded; otherwise failed.
you may want to try the async version of file read
fs.exists(file, function (exists) { if (exists) { fs.writeFiles(file, content, 'utf-8', function (err) { if (err) { response.send("failed to save"); } else { response.send("succeeded in saving"); } } else { console.log('file does not exists'); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With