Quiero guardar archivos que obtengo de otro servidor en mi servidor, pero el problema es que cuando llamo a createWriteStream me da el error:
no hay tal archivo o directorio, abra E: pathtoprojectmyprojectpublicprofile_14454.jpg
Aquí está mi código que está en E:pathtoprojectmyprojectmodulesdowload.js
:
request.head(infos.profile_pic, function(err, res, body) {
const completeFileName = "../public/profile_14454." + res.headers["content-type"].split("/")[1];
var imageStream = fs.createWriteStream(completeFileName);
imageStream.on("open", function(fd) {
console.log("File open");
request(infos.profile_pic).pipe(imageStream).on("close", function(body) {
consoleLog("Profile pic saved");
console.log("This is the content of body");
console.log(body);
connection.query("UPDATE user set photo=? where id=?", [completeFileName, lastID], function(err, result, fields) {
if (err) {
consoleLog("Error while update the profile pic");
}
});
})
});
});
Cuando eliminé el directorio ../public/
y deja solo el nombre del archivo
profile_14454." + res.headers["content-type"].split("/")[1]
, funcionó pero el archivo se guardó en el directorio raíz del proyecto (E:pathtoprojectmyproject
)
¿Qué hay de malo en lo que estoy haciendo? ¿Cómo puedo guardar el archivo en un directorio público?
Estoy usando nodeJS 8.9.4
Respuestas
0 para la respuesta № 1Intenté con mi pequeño código.
var fs = require("fs");
var data = "Simply Easy Learning";
// Create a writable stream
var writerStream = fs.createWriteStream("./airo/output.txt");
// Write the data to stream with encoding to be utf8
writerStream.write(data,"UTF8");
// Mark the end of file
writerStream.end();
// Handle stream events --> finish, and error
writerStream.on("finish", function() {
console.log("Write completed.");
});
writerStream.on("error", function(err){
console.log(err.stack);
});
console.log("Program Ended");
Mi código está en este camino E:syed ayeshanodejsnodejs
ahora quiero almacenar mi archivo en airo
carpeta que se encuentra en esta ruta. Entonces usé un punto para almacenar. Espero que esto ayude.