如何在Next.js中读取.env/.env.local文件(应用路由器)

ccgok5k5  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(266)

我无法使用最新的App Router在next.js中读取.env / .env.local文件中的API值。
据我所知,.env应该在react中启用。
我从这里尝试了很多方法,但还是失败了。
包括已安装的dotenv

const dotenv = require("dotenv");
const env = dotenv.config().parsed;

字符串
我试着退出

  • 会话文件-我需要在这里使用它
  • 服务器端文件-我可以获得值
  • 客户端文件(使用"use client";

这是我尝试的步骤
根文件
.env

GOOGLE_CLIENT_ID='values'
GOOGLE_CLIENT_SECRET="values"


客户端文件

"use client";

useEffect(()=>{
   console.log(process.env.GOOGLE_CLIENT_ID)   ===> undefined
},[])


lib/session.ts

import { getServerSession } from "next-auth/next";
import { NextAuthOptions, User } from "next-auth";
import { AdapterUser } from "next-auth/adapters";
import GoogleProvider from "next-auth/providers/google";
import jsonwebtoken from "jsonwebtoken";
import { JWT } from "next-auth/jwt";
import { SessionInterface } from "@/common.types";

export const authOptions: NextAuthOptions = {
  providers: [
    GoogleProvider({
      clientId:
        process.env.GOOGLE_CLIENT_ID|| "",  ===>  could not obtain value
      clientSecret: process.env.GOOGLE_CLIENT_SECRET || "",
    }),
  ],

所以我从NextJs https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables检查了这个页面,
并将.env重置为.env.local
仍未定义

我安装了dotenv
客户端文件

"use client";

const dotenv = require("dotenv");
const env = dotenv.config().parsed; 

useEffect(()=>{
   console.log(process.env.GOOGLE_CLIENT_ID)   ===> undefined
},[])

sulc1iza

sulc1iza1#

您应该能够在NextJS中使用process.env.<VARIABLE_NAME>访问env变量。
如果这对你不起作用,请分享你所做的一切以及结果。

相关问题