gpt4 book ai didi

node.js - 使用 multer 包在 Node Express 中使用 api 上传图像

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:00 24 4
gpt4 key购买 nike

这个问题之前已经被问过。但由于我的问题未能得到解决,所以我再次询问。

我正在尝试使用 multer 包作为表单数据上传属性的图像,以便我可以在数据库中存储其他数据和图像路径。我正在使用 Node express 。

我的API--

      api.post('/service', upload.single('servicesImage'),
(req, res, next) => {
console.log(req.file);
Company.find({ domain: req.headers.domain },
(err, company) => {
const servicecontent = new Servicecontent({
description: req.body.description,
created_at: Date.now(),
created_by: req.body.user_id,
company_domain: req.headers.domain,
company_uuid: company[0].uuid,
image: req.file.path,
})
servicecontent.save(err => {
console.log(err);
});
res.json({ status: "success" });
});
});

我观看了一个教程,然后我添加了这些代码来上传图像和其他选项--

   const storage = multer.diskStorage({
destination: function(req, file, cb){
cb(null, './src/uploads/');
},
filename: function(req, file, cb){
cb(null, new Date().toISOString()+ file.originalname);
},
});

const upload = multer({storage: storage, limits:{
fileSize: 1024*1024*5
},
fileFilter: fileFilter
});

const fileFilter = (req, file, cb) =>{
if(file.mimetype=== 'image/jpeg' || file.mimetype=== 'image/png'){
cb(null,true);
}else{
cb(null,false);
}
};

现在,当我通过 Postmanconsole.log(req.file) 发送数据和图像时正如我从教程中看到的那样,我获得了有效数据。 Api 响应没有任何错误,在数据库中我可以看到所有数据都已存储,包括图像路径。但我面临的问题是 src/upload 文件夹是空的,没有上传图像。

注意 -- 我使用的是 linux 18.04 操作系统,无法安装 fs 软件包。因此,当我发送请求时,src/upload 文件夹并未创建,因此我从文件夹创建了此目录。

编辑:我现在可以使用此代码上传图像,我不完全知道为什么这之前不起作用。如果可能的话,我应该结束这个问题。

最佳答案

我现在可以使用此代码上传图像,我不完全知道为什么这之前不起作用。如果可能的话,我应该结束这个问题。

关于node.js - 使用 multer 包在 Node Express 中使用 api 上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50857540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com