1. 程式人生 > >使用node上傳檔案或者資料到mongodb

使用node上傳檔案或者資料到mongodb

上傳檔案分為兩種情況:
1.小檔案,不超過16M的
2.大檔案超過16M的
上傳資料比較簡單,直接上傳req.body裡面的內容就可以了

如果上傳的檔案是小於16M的比較簡單,直接使用ajax或者表單上傳,後臺接收後,儲存到mongodb中,需要注意的是用ajax上傳的時候有點麻煩,可以使用外掛ajaxFileUpload.js,接收檔案要用multer,因為body-parser不支援檔案

multer的配置

const multer = require('multer');  / /引入

var upload=multer({dest:'./public/img'}).any()
router.post('/update'
,upload,function(req,res,next){ //注意接收到的檔案要用fs重新命名一下, var newName = req.files[0].path+pathLib.parse(req.files[0].originalname).ext; //圖片路徑 var imgNewname ='img/'+req.files[0].filename+pathLib.parse(req.files[0].originalname).ext; fs.rename(req.files[0].path,newName,function(){ if(err){ res.send('出錯了'
) }; if(req.files[0].size>1*1024*1024){ //判斷圖片大小 res.send('圖片超過1M'); }else{ // res.send('上傳成功'); var src = { src:imgNewname, //圖片路徑 title:'一張圖片', subTitle:'副標題' }; var
imgData = new Manage(src) //將圖片資訊放到Manage的集合中 imgData.save(function(err){ //儲存集合 if(err){ res.json({ status:500, msg:err }) }else{ res.json({ status:200, msg:'儲存成功' }) } }); }; }) } //從這個練習中可以看出資料庫中儲存的是圖片的路徑

查詢檔案時,從資料庫中拿到路徑,對應的找檔案,然後返回給前端
如果查詢的是txt等這樣的檔案,獲取到路徑後,要用fs的readFile()方法,將檔案讀出來再返回給前端