node.js - 如何通过 imgur 包上传图片
问题描述
我正在创建我的restful api,其中一个功能是用户可以上传图像及其标题。所以,我正在使用 npm 包imgur。这是我的代码。在我的控制器中,我首先设置了 clientId 和 APIURL,但是当我尝试上传图片时,邮递员只是发送了关于“错误请求”的消息。在 npm 包页面上,它显示它可以通过以下代码上传单个图像。
有没有人有使用这个包的经验?请帮助配置我在这里错过或出错的内容......
后控制器
const imgur = require("imgur");
imgur.setClientId(process.env.imgur_userID);
imgur.setAPIUrl("https://api.imgur.com/3/");
createPost: (req, res) => {
const { content } = req.body;
const encode_img = req.file.buffer.toString("base64");
imgur
.uploadBase64(encode_img)
.then((json) => {
console.log(json.data.link);
})
.catch((err) => {
console.error(err.message);
});
}
后路由器
const postControllers = require("../controllers/post.controller");
const { Router } = require("express");
const router = Router();
const uploadService = require("../middlewares/uploadService");
const verifyToken = require("../middlewares/verifyToken");
router
.route("/all")
.get(verifyToken, postControllers.getAllPosts)
.post(verifyToken, uploadService.single("image"), postControllers.createPost);
上传图片的中间件
const multer = require("multer");
const fileFilter = (req, file, cb) => {
if (!file.originalname.match(/\.(jpg|jpeg|png)$/)) {
cb(null, false);
return cb(new Error("Please upload an image"));
} else {
cb(null, true);
}
};
const upload = multer({
fileFilter,
limits: { fileSize: 1024 * 1024 * 2 },
});
module.exports = 上传;
解决方案
推荐阅读
- maven - 使用 Maven 的程序集插件并从文件名中删除程序集描述符 id
- javascript - React redux 实例化非组件类
- r - 根据数据框的重复列值制作具有平均值(平均值)的表
- excel - 在 Outlook 中使用 VB 将数据从邮件复制到 Excel 工作表
- django - 我在为我的 django 模型选择相关字段时需要帮助,想要一个像列表这样可以包含多个项目的字段
- php - Laravel 7 用户 $user 没有检索数据
- mysql - 我怎么知道最后一个异步任务何时完成?
- regex - Groovy 中的多行正则表达式不匹配
- javascript - Javascript,将多个字典组合成单个字典
- python - 如果它们与列表中的项目匹配,如何删除数据框行?