我希望将从另一台服务器获取的文件保存在我的服务器上,但问题是当我调用createWriteStream时,它给出了以下错误:
no such file or directory, open E:\pathtoproject\myproject\public\profile_14454.jpg
以下是我的代码,位于E:\ pathtoproject \ myproject \ modules \ dowload.js中:
当我移除目录
no such file or directory, open E:\pathtoproject\myproject\public\profile_14454.jpg
以下是我的代码,位于E:\ pathtoproject \ myproject \ modules \ dowload.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');
}
});
})
});
});
当我移除目录
../public/
并只留下文件名profile_14454.' + res.headers['content-type'].split('/')[1]
时,它可以工作,但该文件将被保存在项目根目录(E:\pathtoproject\myproject\
)中。那么我做错了什么?如何将文件保存在public目录下?我正在使用nodeJS 8.9.4。
console.log(__dirname)
,你可以得到当前脚本的工作目录。试着以相对于__dirname
的路径创建你的图像路径。 - Alex Michailidis