我在youtube上学习了这个教程(https://www.youtube.com/watch?v=enfZAaTRTKU),它教你如何上传一个pdf文件到express服务器上并读出它的内容。
我不想显示PDF -我只关心文本。
我已经遵循了教程,它对我的express环境都很有效,但当我尝试使用next.js路由处理程序时,只要我调用pdfParse(),它就会向我返回404
import pdfParse from 'pdf-parse'
import { NextResponse, type NextRequest } from 'next/server';
export async function POST(request: NextRequest) {
const formData = await request.formData();
const file = formData.get('pdf');
//console.log(file) -- works fine
// causes the server to send a 404
const pdfData = await pdfParse(file)
// it never gets here
return NextResponse.json({"message": "Error"})
}
有人知道怎么处理吗?我想避免只为此运行一个Express服务器。
2条答案
按热度按时间oalqel3c1#
将导入替换为以下内容
并将pdfParse(file)更改为pdf(file)
存在此问题是因为已发布的库中存在测试文件
你可以阅读更多关于它here
lnlaulya2#
我在做同一个项目,我所理解的是,在Next.js中,解析PDF必须在服务器组件中发生,所以我像你一样使用API来处理PDF。
1.要解决API fetch中的404错误,请导入“pdf-parse”库,如下所示:
你的代码:
2.第二件事,我面临的,这可能会帮助你太使用缓冲区,如果你是一个大文件的大小
3.我还尝试将文件路径传递给API,而不是文件本身
如果你对第二、三条有兴趣,我可以再解释一下。