我正在使用 express 和 MongoDB 開發博客應用程式 API。
我正在嘗試為每篇博客文章添加一張圖片。作為新手表達,我遇到了這個問題。
我得到了這個錯誤:無法讀取未定義的屬性(讀取'傳輸編碼'
這是后控制器代碼代碼:
const asyncHandler = require("express-async-handler");
const imageModel = require("../models/imageModel");
const User = require("../models/userModel");
const Post = require("../models/postModel");
// storage
const Storage = multer.diskStorage({
destination: "storage",
filename: (res, req, file, cb) => {
cb(null, Date.now() file.originalname);
},
});
const upload = multer({
storage: Storage,
}).single("img");
// @desc Create a new post
// @route POST /api/posts/
// @access Private
const createPost = asyncHandler(async (res, req) => {
let img;
upload(req, res, async function (err) {
if (err) {
res.status(400);
throw new Error("Error uploading images.");
}
const newImage = await new imageModel({
img: {
data: req.file.filename,
contentType: "image/png",
},
});
newImage.save().then(console.log("Successfully uploaded"));
img = newImage;
});
console.log(img);
const { title, description, categories, nacCompatible, downloadURL } =
req.body;
if (!title || !description || !categories || !downloadURL) {
res.status(400);
throw new Error("Please add all the required fields.");
}
// Get user using the id in the JWT
const user = await User.findById(req.user.id);
if (!user) {
res.status(401);
throw new Error("User not found");
}
const post = await Post.create({
title,
description,
img,
categories,
nacCompatible,
downloadURL,
user: req.user._id,
status: "new",
});
res.status(201).json(post);
});
我也有const multer = require("multer");在控制器的頂部。
在我嘗試添加此上傳圖片功能之前,創建帖子功能運行良好。
uj5u.com熱心網友回復:
這一行:“createPost = asyncHandler(async (res, req)”
你把reqand放res錯了順序
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/460589.html
標籤:javascript mongodb 表示
