Node.js 如何在Heroku上设置环境变量?

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

当我在Heroku上部署Node.js API时,它给出了错误的响应

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、 g
process.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有
    配置变量