Node.js 使用NextJS api路由和同构取消蚀刻将图像上载到文件夹

Node.js 使用NextJS api路由和同构取消蚀刻将图像上载到文件夹,node.js,api,routes,next.js,Node.js,Api,Routes,Next.js,我试图弄清楚如何使用NextJSAPI路由和同构取消蚀刻上传图像。我所看到的一切都是利用express,但我觉得我应该能够通过api路由来完成它 到目前为止,我有一个file类型的输入,它触发一个onClick处理程序: const handleImage = async (theImg) => { try { const res = await fetch("/api/admin", { method: "P

我试图弄清楚如何使用NextJSAPI路由和同构取消蚀刻上传图像。我所看到的一切都是利用express,但我觉得我应该能够通过api路由来完成它

到目前为止,我有一个file类型的输入,它触发一个onClick处理程序:

    const handleImage = async (theImg) => {
        try {
            const res = await fetch("/api/admin", {
                method: "POST",
                body: theImg,
            });
            const json = await res.json();
            console.log(json);
        } catch (error) {
            console.log(error);
        }
    };
return(
    <input
        onChange={(e) => handleImage(e.target.files[0])}
        type="file"
        name="uploaded_img"
        placeholder="Upload File"
    />
);

无法打开生成的文件,该文件包含大量缺少的字符。我可能是完全错误的,但任何朝着正确方向的努力都将得到极大的赞赏

您需要将使用多部分/表单数据的映像传递到API服务器。如果您使用node.js作为API服务器,则需要检查multer的文件处理情况,然后在强大的serverless中签出该示例。这就是您在nextJS上所需要的,因为它是无服务器的。您需要将使用多部分/表单数据的映像传递到API服务器。如果您将node.js用作API服务器,则需要检查multer的文件处理功能,然后在无服务器中签出示例。这就是您在nextJS上需要的,因为它是无服务器的。
import fs from "fs";

export default async (req, res) => {
    try {
        const data = fs.writeFile("./uploads/test.jpg", req.body);
        //file written successfully
        console.log("wrote file");
    } catch (err) {
        console.error(err);
    }
};