首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不包括.env文件的情况下将我的网站部署到Heroku?

如何在不包括.env文件的情况下将我的网站部署到Heroku?
EN

Stack Overflow用户
提问于 2022-11-21 05:56:55
回答 2查看 36关注 0票数 0

大家好,我是heroku的新手,在网上部署网站对我来说是很新的。每次在cmd行客户端中执行heroku推送时,我都会收到一条错误消息: Error:‘./../..env’。

我有一个.env文件,其中包含用于mongoDB的连接字符串和一个秘密密钥。我不想把它推到远程服务器上。所以我把它包含在git.ignore文件中。我认为这就是造成问题的原因。它说它找不到.env文件,我认为这是因为它不在git远程上。但是,我如何才能部署站点,而不必将我不想公开的信息推送到.env文件中呢?我不想为了让它发挥作用而把它推到git上,因为这样做违背了目的。

在创建.env文件之前,我有一个带有module.exports对象的配置文件,其中包含连接字符串和秘密密钥。但是这不起作用,我一直得到相同的错误,当时没有找到.config模块。因此,我在线查看并找到了教程,说明如果我安装dotenv包并使用一个.env文件,而不是使用该文件就可以了。但是,我只使用.env文件就得到了完全相同的错误。所以我觉得没什么不同。

下面是index.js文件和package.json文件。.env文件中唯一的内容是我的数据库连接字符串和秘密密钥。

index.js文件`

代码语言:javascript
复制
const dotenv = require("dotenv");
dotenv.config({ path: "./.env" });
const { ApolloServer, PubSub } = require("apollo-server");
const mongoose = require("mongoose");

const typeDefs = require("./graphql/typeDefs");
const resolvers = require("./graphql/resolvers");

const pubsub = require("graphql-subscriptions");

const PORT = process.env.port || 5000;

const server = new ApolloServer({
  typeDefs,
  resolvers,
  context: ({ req }) => ({ req, pubsub }),
});

mongoose
  .connect(process.env.MONGODB_URI, { useNewUrlParser: true })
  .then(() => {
    console.log("MongoDB Connected");
    return server.listen({ port: PORT });
  })
  .then((res) => {
    console.log(`Server running at ${res.url}`);
  })
  .catch((err) => {
    console.error(err);
  });

`

Package.json文件`

代码语言:javascript
复制
{
  "name": "social-media-app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "serve": "node index",
    "start": "node index"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "apollo-server": "^3.10.2",
    "bcryptjs": "^2.4.3",
    "dotenv": "^16.0.3",
    "graphql": "^16.6.0",
    "graphql-subscriptions": "^2.0.0",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^6.6.4",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  }
  
}

`

以下是我在客户端按下时一直收到的错误消息。我把它放在烤箱里,因为它很长。

https://pastebin.com/DC0q27aA

EN

回答 2

Stack Overflow用户

发布于 2022-11-21 06:08:44

转到设置选项卡。在Config中,单击Reveal Config Vars并键入变量

票数 1
EN

Stack Overflow用户

发布于 2022-11-21 08:01:31

Heroku建议使用配置vars函数,而不将.env或其他东西保存到文件中。

如果您将配置保存为文件,请小心,因为机密信息可能会在公共存储库中披露。

请参阅Heroku的文章:https://devcenter.heroku.com/articles/config-vars

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74514782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档