【问题标题】:nodejs app deployment using gcloud errors out使用 gcloud 部署 nodejs 应用程序错误
【发布时间】:2018-06-08 11:02:32
【问题描述】:

我正在尝试将我的 nodejs API 应用程序部署到谷歌云平台。不幸的是,它错误地说:

我确实使用这些命令设置了 app.yaml 文件

runtime: nodejs  
env: flex

这是我要部署的启动文件

const express = require('express');
const mysql = require('mysql');
var bodyParser = require('body-parser');

const db = mysql.createConnection({
    host     : '35.230.**.**',
    user     : 'root',
    password : '*********',
    database : 'sale*******er'
});
//Connect
db.connect((err) => {
    if(err){throw err;}
    // console.log('Connected to Sales Tracker database!');
})
const app = express();
const port = process.env.PORT || 8080
app.use('/backend', backend);
app.listen(port, () => {
    // console.log('Server started on port 3000');
});

【问题讨论】:

  • 您正在调整您的应用程序在 SQL 服务器连接成功的情况下正确启动。连接失败将导致部署期间出现问题,该问题根据应用程序正确启动来衡量部署成功。恕我直言,更好的方法是在您的应用启动后在后台管理此类连接。
  • 你好@DanCornilescu。我在谷歌云 SQL 上也有 mySQL 数据库。我尝试部署的这个 nodejs 应用程序具有连接到云 SQL 上的数据库的端点。正如您所说,我如何在后台管理连接。
  • 不太确定,我没有使用 SQL。在标准环境中,我会将推送队列任务排入队列来处理它,但这只是 flex 的 alpha 支持。也许使用第一个外部请求作为触发器?

标签: node.js google-app-engine google-cloud-platform


【解决方案1】:

从另一个帖子中找到答案 var 连接 = mysql.createConnection({ 主机:'ip_address', 用户:'root', 密码:'密码', 数据库:'database_name' socketPath: “/cloudsql/projectName:zone:instance-name” }); https://stackoverflow.com/a/49169561/3826733

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 2020-01-14
    • 2017-01-24
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多