首页 > 解决方案 > 如何在 Sequelize 中检索文件/图像

问题描述

我正在使用 sequelize,并且我已成功将文件上传到文件夹并将其名称保存在数据库中。现在我想在邮递员中检索图像。当我使用获取请求时,我正在获取图像的名称。如何做我得到了存储在上传文件夹中的实际图像。

下面是我的代码。

中间件/upload.js

 const multer = require("multer");

const imageFilter = (req, file, cb) => {
  if (file.mimetype.startsWith("image")) {
  cb(null, true);
   } else {
    cb("Please upload only images.", false);
  }
   };

  var storage = multer.diskStorage({
  destination: (req, file, cb) => {
  cb(null, "./uploads/");
 },
   filename: (req, file, cb) => {
   let name =  `${Date.now()}-Shehryar-${file.originalname}`
   req.body.fingerPrints = name
   cb(null,name);
  },
  });

   var uploadFile = multer({ storage: storage, fileFilter: imageFilter });
   module.exports = uploadFile;

路由/user.js

const { Router } = require('express');
const user = require('../controllers/user.controller.js');
const upload = require("../middleware/upload");
const user_router = Router();

user_router.post('/createUsers',upload.single("fingerPrints"),user.create);
user_router.get('/getall', user.findAll);
user_router.get('/get/:code', user.findById);
user_router.put('/update/:code', user.update);
user_router.delete('/delete/:code', user.delete);

module.exports = user_router;

控制器/user.js

 exports.create = (req, res) => {
    let codeGenerate = Math.random().toString(36).substring(2,7);

End_user.create({
    code:codeGenerate,
    firstName: req.body.firstName,
    middleName: req.body.middleName,
    lastName: req.body.lastName,
    nickName: req.body.nickName,
    email: req.body.email,
    mobileNumber: req.body.mobileNumber,
    bloodGroup:req.body.bloodGroup,
    fatherName: req.body.fatherName,
    motherName: req.body.motherName,
    bForm: req.body.bForm,
    fingerPrint: req.body.fingerPrints
}).then(user => {
    res.send({message :`User Created With Code ${user.code}`});
}).catch(err => {
  res.send(err.message);
 });
};

标签: node.jssequelize.js

解决方案


这很简单,您必须将以下代码放入您的 app.js 或 srever.js

app.use(express.static(__dirname + '/public'));
app.use('/uploads', express.static('uploads'));

// Above line would serve all files/folders inside of the 'uploads' directory
// And make them accessible through http://localhost:yourport/uploads.

所以现在当我们上传图片(比如说 sample.png)时,它将被存储在上传文件夹中,并且可以在 url 上的网页上访问http://localhost:3000/uploads/sample.png


推荐阅读