Я работаю над приложением Angular / Node / Express / Psql.Для части приложения у меня есть запросы GET, идущие в Express для получения профилей пользователей.У меня есть папка с именем profile-pics, которая содержит изображения пользователей, если изображение пользователя еще не существует, оно извлечет его из базы данных и вставит в папку, а затем вернет изображение.
Текущий способ установки запроса GET url - это вызов, подобный следующему:
user/profile-pic?username=bar123456
Он попадает на экспресс-маршрут, и некоторые вызовы возвращают одно и то же изображение профиля, даже если запрашиваются два разных.
Так, например, будут выполняться два запроса GET
user/profile-pic?username=foo123456
user/profile-pic?username=bar123456
Однако оба изображения будут иметь изображение bar123456.
Я попытался отладить его, написав
console.log('Sending back picture ' + profilePicPath).
Когда я это сделаю, я получу
'Sending back picture bar123456'
'Sending back picture bar123456'
Это маршрут в экспрессе, который возвращает изображение.Я выполнил вызов базы данных, так как оба изображения профиля уже
userRouter.get('/user/profile-pic', function (req, res) {
let userName = req.query.username;
fileName = './profile-pics/' + userName + '.jpg';
userProfilePic = userName + '.jpg';
fs.exists(fileName, function (exists) {
if (exists) {
console.log('Sending back picture ' + userProfilePic);
res.status(200).contentType('image/png').sendFile(userProfilePic, {
root: path.join(__dirname, '../profile-pics/')
}, function (err) {
if (err) {
console.log(err);
}
});
}
})
});
Я также попытался разрезать строку, чтобы создать новую копию, потому что я думал, что это могло быть только копирование ссылки, и ссылка изменилась.Однако это тоже не сработало.