Nodejs实现图片上传,链接保存到Mongodb数据库

需求: 客户端批量上传图片到服务器,服务器返回图片链接

用到的主要工具及node库有 multer  mongoose

代码如下

var router = require('express').Router()
var projectInfo = require('../projectInfo.json')
var multer = require('multer')
let PictureStore = require(PROXY).pictureStore

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './public/upload')
  },
  filename: function (req, file, cb) {
    var str = file.originalname.split('.')
    cb(null, Date.now() + '.' + str[1])
  }
})
var upload = multer({storage: storage})

// 上传图片到图片仓库并返回上传的图片路径
router.post('/uploadImgs', upload.array('file', 20), function (req, res, next) {
  var arr = []
  for (var i in req.files) {
    arr.push(global.SERVICEADDRESS + '' + req.files[i].filename)
  }
  if (req.body.storeId) {
    PictureStore.updateOnePictureStore({_id: req.body.storeId}, {$addToSet: {pictureUrlArr: {$each: arr}}}, (err, data) => {
      res.json({
        code: 200,
        data: arr
      })
    })
  } else {
    PictureStore.updateOnePictureStore({isCommon: true}, {$addToSet: {pictureUrlArr: {$each: arr}}}, (err, data) => {
      res.json({
        code: 200,
        data: arr
      })
    })
  }
})

上传图片到服务器的public/upload文件夹下

更新图片链接到图片库, 主要是用了 

{$addToSet: {pictureUrlArr: {$each: arr}}}  批量插入一个数组

谢谢阅读.如果觉得对你有帮助请记得点赞或收藏.欢迎留言讨论.你的支持是我出产优秀博客的动力.

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值