Unexpected token < in JSON at position 0. Status code 500 in Nextjs 13 production build (App router)
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- nextjs, nodejs, typescript
调研方向
从 src/app/api/upload/route.ts 和 upload_stream 调用开始,然后使用提供的软件包版本,通过 next dev 以及 next build && next start 重现请求。将生产环境中的 500 响应与开发环境中的结果进行比较;当同一张图片在生产构建中上传成功且不再出现 JSON 解析错误时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Describe the bug in a sentence or two.
Unexpected token < in JSON at position 0. Status code 500 in Nextjs 13 production build (App router)
Issue Type (Can be multiple)
[ ] Build - Can’t install or import the SDK
[ ] Babel - Babel errors or cross browser issues
[ ] Performance - Performance issues
[X] Behaviour - Functions aren’t working as expected (Such as generate URL)
[ ] Documentation - Inconsistency between the docs and behaviour
[ ] Incorrect Types - For typescript users who are having problems with our d.ts files
[ ] Other (Specify)
Steps to reproduce
Create a route src/app/api/upload/route.ts and use the upload_stream method to upload any image
//src/app/api/upload/route.ts
import { NextRequest, NextResponse } from "next/server";
import { UploadApiResponse, v2 as cloudinary } from "cloudinary";
const cloud_name = process.env.NEXT_CLOUDINARY_CLOUDNAME;
const api_key = process.env.NEXT_CLOUDINARY_API_KEY;
const api_secret = process.env.NEXT_CLOUDINARY_API_SECRET;
cloudinary.config({
cloud_name,
api_key,
api_secret,
});
export async function POST(request: NextRequest) {
const data = await request.formData();
const image = data.get("file") as File;
const bytes = await image.arrayBuffer();
const buffer = Buffer.from(bytes);
const response = await new Promise<UploadApiResponse>((resolve, reject) => {
const stream = cloudinary.uploader.upload_stream({}, (err, res) => {
if (err) reject(err);
resolve(res!);
});
stream.write(buffer);
stream.end();
});
return NextResponse.json({
message: "File successfully uploaded",
url: response.secure_url,
id: response.public_id,
});
}
Run next dev command and send a request to http://localhost:3000/api/upload with the image. This works fine
Now, run next build && next start and send same request to the same url and server will throw an HTTP 500 error:
Error screenshots
Browsers (if issue relates to UI, else ignore)
[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] Other (Specify)
[ ] All
Versions and Libraries (fill in the version numbers)
Cloudinary_NPM SDK version 1.41.0
Node - 18.15.0
NPM - 9.6.4
Config Files (Please paste the following files if possible)
// package.json
{
"name": "cloudinary-test",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"cloudinary": "^1.41.0",
"next": "13.5.4",
"react": "^18",
"react-dom": "^18"
},
"devDependencies": {
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"typescript": "^5"
}
}
Repository
- 主要语言
- JavaScript
- 星标
- 672
- 派生
- 318
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cloudinary/cloudinary_npm 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 45/100
cloudinary/cloudinary_npm#746 · 1 条评论 ·
-
难度 5/5 一周以上 新手友好度 30/100
cloudinary/cloudinary_npm#739 ·
-
难度 2/5 1-3 小时 新手友好度 58/100
cloudinary/cloudinary_npm#734 ·
-
难度 5/5 一周以上 新手友好度 25/100
cloudinary/cloudinary_npm#713 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 45/100
cloudinary/cloudinary_npm#712 · 1 条评论 ·
查看 cloudinary/cloudinary_npm 的全部 Issue
相似的 Issue
-
bug confirmed issue
难度 2/5 1-3 小时 新手友好度 62/100
open-webui/open-webui#34458 · 2 条评论 ·
维护者通常 1 天内回复
-
documentation good first issue
难度 1/5 1 小时以内 新手友好度 78/100
-
area: install-setup needs-info question
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
accessibility area: css area: web ui bug difficulty: easy frontend good first issue help wanted javascript journey: first-visit journey: mobile priority: P3 quality tech: css tech: html typescript ui user-experience
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
themactep/thingino-firmware#2018 ·
维护者通常 1 天内回复