Google cloud platform &引用;process.env.DATABASE“u URL”;未填充部署在Google Cloud Run上的应用程序内
下面是部署到Heroku时NodeJS代码的工作原理Google cloud platform &引用;process.env.DATABASE“u URL”;未填充部署在Google Cloud Run上的应用程序内,google-cloud-platform,google-cloud-sql,google-cloud-run,Google Cloud Platform,Google Cloud Sql,Google Cloud Run,下面是部署到Heroku时NodeJS代码的工作原理 var pgp = require("pg-promise")(/*options*/); function PostgresDBAdapter() { var db = pgp( process.env.DATABASE_URL || "postgres://postgres:123456@localhost:5432/surveyjs" ); function g
var pgp = require("pg-promise")(/*options*/);
function PostgresDBAdapter() {
var db = pgp(
process.env.DATABASE_URL ||
"postgres://postgres:123456@localhost:5432/surveyjs"
);
function getObjectFromStorage(tableName, callback) {
db.any("SELECT * FROM " + tableName).then(function (result) {
var objects = {};
(result || []).forEach(function (item) {
objects[item.id] = item;
});
callback(objects);
});
}
但当我部署到GoogleCloud运行时,“process.env.DATABASE\uURL”并没有填充。我放置了什么环境变量或应该遵循什么url语法?。在部署到云运行时,我已将云sql实例附加到我的应用程序。
谢谢。我已经重写了如下代码,效果很好 var pgp=要求(“pg承诺”)(/options/); const databaseConfig={“host”:“/cloudsql/”,“database”:“db1”,“user”:“postgres”,“password”:“password123”,“port”:“5432} 函数PostgresDBAdapter()
{var db=pgp(数据库配置)显示您正在使用的
gcloud run deploy
命令。您可以在部署期间使用--set env vars
或--update env vars
命令行选项设置数据库URL
的值。您是如何部署应用程序的?请参阅此处的文档:谢谢。我已经用pg promi重写了代码它工作正常。var pgp=require(“pg promise”)(/*options*/);const databaseConfig={“host”:“/cloudsql/”,“database”:“db1”,“user”:“postgres”,“password”:“password123”,“port”:5432};函数PostgresDBAdapter(){var db=pgp(databaseConfig);如果这样做有效,则意味着连接字符串不正确,仅此而已。您只需根据预期修改语法即可。当主机名以/
开头时,通常是套接字,而不是域名。如果是这种情况,则需要使用套接字语法。