我正在学习使用 multer 和 cloudinary 在线上传图像,但由于某种原因,代码在 cloudinary.uploader.upload() 方法上停止工作。图像被存储在所需的位置,一切都很顺利,但它不会继续,只等待部分功能。我对此很陌生,所以我对此一无所知,并且其他在线资源目前大多毫无用处。
这是我的cloudinary配置文件
import { v2 as cloudinary } from "cloudinary";
import dotenv from "dotenv";
dotenv.config();
cloudinary.config({
cloud_name: process.env.CLOUD_NAME,
api_key: process.env.API_KEY,
api_secret: process.env.API_SECRET,
});
export default cloudinary;
这是我的控制器功能。
import cloudinary from "../Config/Cloudinary.js";
import path from "path";
export const createbook = async (req, res) => {
try {
const files = req.files;
const coverImageMimeType = files.coverImage[0].mimetype.split("/").at(-1);
const filename = files.coverImage[0].filename;
const __dirname = path.resolve();
const filepath = path.join(__dirname, "../public/files/uploads", filename);
console.log("working");
const uploadresult = await cloudinary.uploader.upload(filepath, {
folder: "bookcover",
resource_type: "image",
public_id: filename,
format: coverImageMimeType,
});
console.log("working");
console.log("uploadresult", uploadresult);
} catch (error) {
return res.json({ message: error.message }).status(500);
}
};
基本上,第二个工作不会被打印,并且代码可以工作,直到只有第一个工作打印为止。
非常感谢您作为前辈在这方面的帮助。谢谢你
您可以尝试记录不同的变量,看看它们是否按照给定输入的预期结果出现。如果您像这样记录响应,您可能会更清楚地了解该问题:
cloudinary.uploader.upload(filepath, {options}, function(res, err) {
console.log(err, res);
});