javascript - not - Comprobando si writeFileSync ha escrito correctamente el archivo
write file js (2)
De acuerdo con el código source-code fs.writeFileSync
no devuelve nada.
Lanza un objeto Error
si algo sale mal. Por lo tanto, debe escribir fs.writeFileSync(file, content, ''utf8'');
dentro de un bloque try-catch
.
Tengo una ruta simple definida con 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
};
Es if (typeof saved === ''undefined'') saved = true;
la única opción? Se siente hacky.
fs.writeFileSync no devuelve ningún valor; si no ocurre ninguna excepción, eso significa que se guardó correctamente; de otro modo fallado.
es posible que desee probar la versión asíncrona de archivo leído
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'');
}
}