Aquí está el código fuente:
console.log('Starting app.');
const fs = require('fs');
fs.appendFile('greetings.txt', 'Hello world!');
fs.appendFileSync('greetings.txt', 'Hello world!');
cuando cargo la aplicación en la terminal, me sigue dando este mensaje de error.
Solución del problema
fs.appendFile()
es la versión asíncrona de esa interfaz y requiere que el último argumento sea una devolución de llamada que le brinde condiciones de finalización y/o error.
Ver el documento.
fs.appendFile(path, data[, options], callback)
La devolución de llamada NO es opcional.
El uso adecuado de esa función sería este:
fs.appendFile('greetings.txt', 'Hello world!', err => {
if (err) {
console.log(err);
} else {
console.log("data appended successfully");
}
});
Además, tenga en cuenta que esto es asíncrono y no bloquea, por lo que se llamará a la devolución de llamada en un tiempo indeterminado más tarde (cuando finalice la adición), pero las siguientes líneas de código después de esto se ejecutarán inmediatamente (antes de que se llame a la devolución de llamada).
Otras interfaces relevantes son la versión prometida de la interfaz asíncrona:
fs.promises.appendFile(path, data[, options])
No pasa una devolución de llamada a esta versión. En su lugar, devuelve una promesa que utiliza para recibir una notificación de finalización/error.
fs.promises.appendFile('greetings.txt', 'Hello world!').then(() => {
console.log("data appended successfully");
}).catch(err => {
console.log(err);
});
Para las interfaces asíncronas, la versión de promesa es más nueva y se considera más moderna.
No hay comentarios:
Publicar un comentario