1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
我會(huì)做的是使用存儲(chǔ)而不是數(shù)據(jù)庫來存儲(chǔ)文件。
例如 Amazon S3 或 Google 存儲(chǔ)桶。當(dāng)您的用戶上傳圖片時(shí),您將圖片本身發(fā)送到存儲(chǔ)桶,檢索 URL,然后將圖片 URL 保存在您的博客文檔中。
當(dāng)您檢索圖像時(shí),例如在您的博客“顯示”頁面上,您將 blog.imageUrl(或您對(duì)字段的任何稱呼)添加到 img 標(biāo)簽中。
實(shí)現(xiàn)本身取決于您選擇的存儲(chǔ)提供商,但通常當(dāng)您上傳內(nèi)容時(shí),您會(huì)得到提供商返回的承諾。一旦您解決返回的承諾,圖像 URL 通??捎?。您先上傳,然后更新您的博客文檔。
就個(gè)人而言,我喜歡使用 firebase Firestore。(使用谷歌桶)這讓一切變得非常簡單。您安裝 firebase npm 模塊,并注冊(cè)一個(gè)新的 firebase 應(yīng)用程序。然后,您可以創(chuàng)建一個(gè)用于上傳和存儲(chǔ)圖像的函數(shù),如下所示:
const uploadImage = (blogId, image) => {
const storageRef = firebase.storage().ref(`${blogId}`); // Reference to bucket
storageRef.put(image)
.then(() =>{
storageRef.getDownloadURL()
.then((url) => {
console.log(url) // Gives you the URL to the uploaded image
// You can update or create your blog entry in mongodb here,
// and add the image url to the blog object.
});
});
}
添加回答
舉報(bào)