首页 > 解决方案 > 如何通过 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 = 上传;

标签: node.jsapirestexpressimgur

解决方案


推荐阅读