我无法使用最新的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
},[])
型
1条答案
按热度按时间sulc1iza1#
您应该能够在NextJS中使用
process.env.<VARIABLE_NAME>
访问env变量。如果这对你不起作用,请分享你所做的一切以及结果。