質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

Q&A

解決済

2回答

3033閲覧

Herokuの環境変数にオブジェクトの配列を設定したい

aiki

総合スコア13

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

ハッシュ

ハッシュは、高速にデータ検索を行うアルゴリズムのことです。

0グッド

0クリップ

投稿2017/04/14 09:23

編集2017/04/14 09:25
  • Node.jsでオブジェクトの配列(member)を別ファイルから読み込むコードを書いている
  • ローカルではこのまま動かしているが、公開したくないIDがmemberに含まれているためHeroku上にこのファイルをあげたくない

この対応を考えてつまっています。
対応策は2パターンだと思いました。

  1. Herokuの環境変数にmemberを設定する

heroku config set:member=[{},{},{}]のようにオブジェクトの配列を環境変数に設定しようとしたのですが、シェルスクリプトでこのような値を設定する方法を見つけられませんでした。
また、シェルスクリプトでハッシュを設定できたとしてもNode.jsのコード側でその値を取り出すのは難しいと思いました。

  1. その他の方法がありますか?

その他の方法は思いつきませんでした。

1を達成する方法、もしくは他の方法があれば教えていただきたいです。よろしくお願いします。

module.exports = { member:[ { id: 公開したくない値1, name:"name1", content:" わーい!" }, { id: 公開したくない値2, name:"name2", content:" すごーい!" }, { id: 公開したくない値3, name:"name3", content:" たのしー!" } ] }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

こちらベストアンサーをつけさせていただきましたが、自分でも解決できたので載せておきます。
要は複雑な形をそのまま環境変数に乗せようとしたのが間違いでした。
[]や{}、()をすべて抜いた形で文字列として環境変数に設定し、読み込んでからコードでparseすれば簡単に解決できました。

ありがとうございました。

投稿2017/04/18 04:23

aiki

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

$ heroku config:set 'member=[{"id":"Secret"},{},{}]'

というようにシングルクォーテーションでまるごと括れば設定は可能です。
node.jsに関しては詳しくないのですが、上記の文字列を環境変数経由で受け取ったら、JSONの文字列としてparseするなりevalして評価するなりすれば良いように思います。

投稿2017/04/18 01:28

tbn.sh

総合スコア173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aiki

2017/04/18 04:20

ありがとうございます!試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問