Node.js 如何在Heroku上设置环境变量?
当我在Heroku上部署Node.js API时,它给出了错误的响应Node.js 如何在Heroku上设置环境变量?,node.js,express,heroku,httpresponse,heroku-api,Node.js,Express,Heroku,Httpresponse,Heroku Api,当我在Heroku上部署Node.js API时,它给出了错误的响应 res.json({"user":user,"auth-token":token}); localhost:3000/auth/login { "user": { "email": "name1@gmail.com", "username": "name1", "full
res.json({"user":user,"auth-token":token});
localhost:3000/auth/login
{
"user": {
"email": "name1@gmail.com",
"username": "name1",
"fullname": "fullname 1"
},
"auth-token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiI1ZjMxN2I0OTFhZTc4YzFjOWNjMjZjZWUiLCJ1c2VybmFtZSI6Im5pa2hpbGt1bWEiLCJmdWxsbmFtZSI6Ik5pa2hpbCBrdW1hciBTaW5naCIsImlhdCI6MTU5ODI0OTA3M30"
}
{
"user": {
"email": "name1@gmail.com",
"username": "name1",
"fullname": "fullname 1"
}
}
部署到heroku之后
name.herokuapp.com/auth/login
{
"user": {
"email": "name1@gmail.com",
"username": "name1",
"fullname": "fullname 1"
},
"auth-token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiI1ZjMxN2I0OTFhZTc4YzFjOWNjMjZjZWUiLCJ1c2VybmFtZSI6Im5pa2hpbGt1bWEiLCJmdWxsbmFtZSI6Ik5pa2hpbCBrdW1hciBTaW5naCIsImlhdCI6MTU5ODI0OTA3M30"
}
{
"user": {
"email": "name1@gmail.com",
"username": "name1",
"fullname": "fullname 1"
}
}
遵循以下步骤 安装名为
dotenv的软件包
npm安装dotenv
在使用like环境变量的主文件中加载该模块。e、 gprocess.env.PORT
require("dotenv").config();
const express = require("express");
const mongoose = require("mongoose");
现在登录到Heroku帐户
转到项目仪表板
进入“设置”选项卡
现在在这里添加环境变量
现在将您的JWT\u SECRET\u密钥
密钥和值放入下一个文本框
注意:在这里输入与.env文件相同的名称
希望这能奏效 您能告诉我您是如何获得令牌的吗?您能告诉我.env文件和令牌生成代码吗?看起来token
是错误的,因此它从最终响应中删除。在heroku上部署时,您能否检查JWT令牌生成是否正常工作?@Prathamesmore谢谢。由于我在.env文件jwt.verify(token,process.env.jwt\u secret\u key)中使用了jwt密钥,所以出现了问题代码>当我只是替换为简单字符串jwt.verify(标记,“sdfahflkhow8e90fr980”)代码>工作正常。嘿,我添加了一个解决方案!不要在Heroku上上载.env文件。Heroku有配置变量
。