NodeJS 我可以在Next.js 13 API中使用import读取JSON文件吗?

xmq68pz9  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(155)

我正在使用Next.js 13并使用App Router功能。目前,我有一个API路由,它从资源文件夹(特别是语言文件夹)读取文件。下面是我的API的结构:

// app/api/file/[lang]/write/route.ts

import { APIResponseType } from '@/models/api/response';
import { NextRequest, NextResponse } from 'next/server';

type Params = {
  params: {
    lang: string;
  };
};

export async function GET(req: NextRequest, { params: { lang } }: Params) {
  const data = await import(`../../../../../languages/${lang}.json`);
  return NextResponse.json<APIResponseType>({
    message: 'Get language successfully',
    data: data
  });
}

我已经测试了这个API,它的工作符合预期。
然而,我很好奇是否有一种更有效或更推荐的方法来从Next.js资源目录中阅读文件。任何见解或替代方法将不胜感激。

vlurs2pr

vlurs2pr1#

你可以像这样在path模块中使用resolve函数。

import path from 'path';

export async function GET(req: NextRequest, { params: { lang } }: Params) {
  const languageFilePath = path.resolve('resources', 'languages', `${lang}.json`);
  const data = await import(languageFilePath);
  ...
}

相关问题