繁体   English   中英

部署到Google App Engine时出错

[英]Error while deploying to Google App Engine

我正在尝试将应用程序部署到Google App Engine。 它是带有MySQL后端的Node.js应用程序。 我正在使用Sequelize ORM。 Cloud SQL实例和App Engine都在同一个项目中。 当我尝试部署并启动应用程序时,出现以下错误。

Updating service [default] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:

> teachhub@1.0.0 start /app
> node server

/app/node_modules/sequelize/lib/sequelize.js:236
        throw new Error('The dialect ' + this.getDialect() + ' is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.');
        ^

Error: The dialect my-nodejs-codelab-1217-190421 is not supported. Supported dialects: mssql, mysql, postgres, and sqlite.
    at new Sequelize (/app/node_modules/sequelize/lib/sequelize.js:236:15)
    at Object.<anonymous> (/app/models/index.js:13:18)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/app/routes/apiRoutes.js:1:72)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/app/server.js:3:14)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! teachhub@1.0.0 start: `node server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the teachhub@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-07-08T15_03_28_369Z-debug.log

下面给出的是我的models / index.js ...

"use strict";
var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var basename = path.basename(module.filename);
var env = process.env.NODE_ENV || "development";
let keys = require(__dirname + "/../config/config.js");
keys = keys.dbConfig[env];
var db = {};
if(process.env.INSTANCE_CONNECTION_NAME){
        var sequelize = new Sequelize(process.env.INSTANCE_CONNECTION_NAME, {dialect:"mysql"});
} else if (process.env.JAWSDB_URL) {
  var sequelize = new Sequelize(process.env.JAWSDB_URL);
} else if (keys.use_env_variable) {
  var sequelize = new Sequelize(process.env[keys.use_env_variable], keys);
} else {
  var sequelize = new Sequelize(
    keys.database,
    keys.username,
    keys.password,
    keys
  );
}

有人可以帮忙吗?

似乎它没有为方言方言定义。 在您的案例“ key.dialect”中,假设您已在配置文件中定义了方言。 您可以在以下文档中确认,该方言定义了项目中使用的数据库的类型: http : //docs.sequelizejs.com/manual/installation/usage.html

在文档中:

const sequelize = new Sequelize({
database: 'db_name',
username: 'username',
password: null,
dialect: 'mysql'
});

在您的代码中:

enter codvar sequelize = new Sequelize( 
Keys.database,
keys.username, 
keys.password, 
keys.dialect
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM