node.js - 如何在 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);
});
};
解决方案
这很简单,您必须将以下代码放入您的 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
推荐阅读
- javascript - 当元素的所有像素都透明时触发事件
- postman - 如何将arraylist存储在全局变量中并在另一个请求中调用它
- python - Firefox 驱动程序无法与 Windows IIS 服务器上的 python 烧瓶应用程序一起使用
- angular - 使用 Angular 和 Springboot 从 S3 流式传输音频,而不共享存储桶 URL
- docker-compose - 通过fastcgi连接多个容器,nginx和php
- java - Java 8 MySQL 8.0 with Connector/J JDBC query for between two timestamps 总是不返回结果
- java - 使用具有不同对象类型的 JSP EL“eq”或“==”会引发错误
- c# - 防止 SQL 查询出现在我的日志中
- linux - 创建文件名中包含日期的日志文件
- python - 硒滑块