__dirname 未在 API 路线中定义

__dirname is not defined within API routes

我有一个 Next.js API 路由需要访问本地文件,但是当我在 API 路由中使用它时 __dirname 没有定义。

是否可以从 Next 路由中获取当前目录?

为了访问根目录,或者与此相关的任何目录,您可以使用 next.config.js 设置 webpack 别名。示例:

// Inside next.config.js
module.exports = {
  webpack: (config) => {
    config.resolve.alias = {
      ...config.resolve.alias,
      '~': __dirname,
    };
  }

现在 ~,当用于资源路径时,将解析为 __dirname 的值。

或者,如果您使用 next.js 8+,您可以使用 next.js 的客户端环境。示例:

// inside next.config.js
module.exports = {
  env: {
    ROOT: __dirname,
  }
}

现在使用 process.env.ROOT 可以访问 __dirname