Здравствуйте! С помощью passport.js делаю авторизацию пользователей, хочу сохранить их аватарку к себе на сервер. Создал директории /static/avatar/, назначил права записи, и написал простой скрипт формирования пути к картинке:
var avatar = function(email, id, url)
{
var hash = crypto.createHash('md5')
.update(email)
.update(id)
.digest('hex');
var uri = hash.substr(29,3) + '/' + hash.substr(26,3) + '/' + hash.substr(0,26) + '/' + hash + '.jpg';
var file = fs.createWriteStream(path.join(__dirname, '../static/avatar/' + uri));
https.get(url, function(res) {
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
res.on('data', function(d) {
file.write(d);
});
}).on('error', function(e) {
console.error(e);
});
return uri;
}
Но получаю ошибку Error: ENOENT, open __dirname ' /static/avatar/041/f90/bd29c83187f7965108cdaa2574/bd29c83187f7965108cdaa2574f90041.jpg'.
Я понимаю что проблема из-за того что директорий нет, неужели нужно дописать еще строки создающие директории, или есть более простой вариант?