__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
。
我有一个 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
。