Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next.js에서 'fs'관련 메소드 사용 시 "readFile is not a function" 에러 발생 #6

Closed
guesung opened this issue May 26, 2023 · 6 comments · Fixed by #11
Closed
Assignees

Comments

@guesung
Copy link
Owner

guesung commented May 26, 2023

          CSVLoader을 사용하니 아래와 같은 오류 발생

스크린샷 2023-05-26 오후 3 48 51

Originally posted by @guesung in #2 (comment)

@guesung guesung changed the title CSVLoader을 사용하니 아래와 같은 오류 발생 Next.js에서 'fs'관련 메소드 사용 시 "readFile is not a function" 에러 발생 May 26, 2023
@guesung
Copy link
Owner Author

guesung commented May 26, 2023

파일을 읽고 써야 하는 'fs'는 브라우저에서 작동이 안된다. node와 같은 백단에서만 사용이 가능하다. 그렇다면 어떻게 해야할까?

@guesung
Copy link
Owner Author

guesung commented May 26, 2023

프로젝트 팀원의 도움으로 5시간 동안 끙끙 앓고 있던 문제를 해결했다 ㅜㅜ
KakaoTalk_Snapshot_20230526_233220

@guesung
Copy link
Owner Author

guesung commented May 26, 2023

몰랐는데, Next.js의 API Routes는 Node.js 기반의 serverless function이라는 것이었다 !! WoW

@guesung
Copy link
Owner Author

guesung commented May 26, 2023

  1. src>app>conversation.tsx 즉, conversation 서버 컴포넌트에서 api를 요청한다.
const run = async () => {
  const {data} = await axios.get("/api/conversation");
  console.log(data);
};
  1. src>app>api>conversation에서 CSVLoader를 이용하여 csv파일을 parse하고 response로 반환값을 넘겨준다.
import "@utils/entrypoints.js";
import { CSVLoader } from "langchain/document_loaders/fs/csv";
import { NextResponse } from "next/server";

export async function GET(request: Request) {
  const loader = new CSVLoader("public/data2.csv");
  const docs = await loader.load();
  return NextResponse.json(docs);
}

@guesung
Copy link
Owner Author

guesung commented May 26, 2023

Next.js의 api router는 node.js를 사용한다는 점을 이용하여 'fs'라이브러리를 이용하여 public폴더의 'data.csv'파일을 불러왔다.

@guesung
Copy link
Owner Author

guesung commented May 26, 2023

그런데, CSV 파일 모양이 이상하다.
스크린샷 2023-05-26 오후 11 42 29
그 이유는, encoding의 default값이 'utf-8'인데, 현재 csv파일은 한글을 포함하고 있기 때문이다.
추가 공부 : UTF8과 EUC-KR

@guesung guesung closed this as completed May 27, 2023
@guesung guesung linked a pull request May 27, 2023 that will close this issue
@guesung guesung added this to the 약 정보 검색 milestone May 28, 2023
@guesung guesung self-assigned this May 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant