そこで、ManningのGetting Meanブックを使って作業を進め、第5章の手順に従って、HerokuのアドオンとしてMongolabのデータベースを使用しようとしています。このコードを(ローカルとHerokuの両方で)実行すると、次のエラーが返されます。
MongoError:getaddrinfo ENOTFOUND undefined undefined:27017
これは私の現在のコードです:
var mongoose = require('mongoose');
var dbURI = "mongodb://localhost/loc8r";
if (process.env.NODE_ENV === 'production') {
dbURI = process.env.MONGOLAB_URI;
}
mongoose.connect(dbURI);
トラブルシューティング私はターミナルからアプリを起動しました:
NODE_ENV=production MONGOLAB_URI=/*my mongo uri here*/
これにより、ローカルで正常に実行されます。そのため、問題の原因がわからない。リストされたエラーをトラブルシューティングするための提案はありますか?
したがって、このプロセスのどの部分で問題が解決したかはわかりませんが、MongolabアドオンをHerokuから完全に削除/削除しました。次に、それを再度追加し、同じコードで同じ正確な手順を実行しました。
手伝ってくれた皆さん、ありがとう!
mongoDB
に必要な_PORT NO.
_を提供していないと思います。
Localhostとともにport no.(27017)
を指定してください。
これを試してください:
_var dbURI = "mongodb://127.0.0.1:27017/loc8r";
_
_getaddrinfo ENOTFOUND
_は、クライアントが指定されたアドレスに接続できなかったことを意味します。上記のアドレスでお試しください。
これがお役に立てば幸いです。
次に示すように、ポート番号の指定を省略しました。
var dbURI = "mongodb://localhost:27017/thenDBname"
本番サーバーでホストしている間は、必ずlocalhostを変更してください。
MLabアドオン用に作成されるHeroku環境変数はMONGODB_URI
と呼ばれます(MONGOLAB_URI
はレガシーなものかもしれません)。
mLabアドオン用に作成されるHeroku環境変数はMONGODB_URIと呼ばれます(MONGOLAB_URIはレガシーなものかもしれません)(pneumee)
これで問題は解決しました。
これは正しいようです。以前にもこのエラーを(たくさん)見たことがあります。 「未定義、未定義」とは、環境変数が未定義であることを指します。環境変数をログに記録して、それらが有効であることを確認してください。