>該教程通過使用Node.js,Express和Multer構建文件上傳系統為您指導您。 我們將介紹單個和多個文件上傳,甚至演示在MongoDB數據庫中存儲圖像以進行以後的檢索。
首先,設置您的項目:
mkdir upload-express cd upload-express npm init -y npm install express multer mongodb file-system --save touch server.js mkdir uploads接下來,創建您的
>文件。 這將處理文件上傳和服務器邏輯。 最初,我們將設置一個基本的Express App:server.js
const express = require('express'); const multer = require('multer'); const app = express(); app.get('/', (req, res) => { res.json({ message: 'WELCOME' }); }); app.listen(3000, () => console.log('Server started on port 3000'));
處理文件上傳
//server.js (add this to your existing server.js) var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads') }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }); var upload = multer({ storage: storage });>單個文件上傳
)。
<form></form>
index.html
>多個文件上傳/uploadfile
//server.js (add this to your existing server.js) app.post('/uploadfile', upload.single('myFile'), (req, res, next) => { const file = req.file; if (!file) { const error = new Error('Please upload a file'); error.httpStatusCode = 400; return next(error); } res.send(file); });
要將圖像存儲在MongoDB中,我們需要安裝
package://server.js (add this to your existing server.js) app.post('/uploadmultiple', upload.array('myFiles', 12), (req, res, next) => { const files = req.files; if (!files) { const error = new Error('Please choose files'); error.httpStatusCode = 400; return next(error); } res.send(files); });然後,將MongoDB連接和圖像處理邏輯添加到
和mongodb
>軟件包。 還可以用數據庫名稱和連接字符串替換佔位符。 此改進的示例包括錯誤處理和異步操作以獲得更好的魯棒性。
npm install mongodb --save
server.js
>此增強教程為處理Node.js應用程序中的文件上傳提供了更完整,更強大的解決方案。 請記住將代碼適應您的特定需求和環境。 在處理生產中的文件上傳時,請始終優先考慮安全性最佳實踐。 <your_mongodb_connection_string></your_mongodb_connection_string>
以上是在node.js中使用multer上傳並上傳express的詳細內容。更多資訊請關注PHP中文網其他相關文章!