我有一个以前一直在远程访问(使用 php)的数据库,现在我正在尝试设置 sequelize 以连接到同一个远程服务器数据库:

为此,我有以下 json (database.json):

{
  "dev": {
    "server": "serverip",
    "driver": "mysql",
    "user": "username",
    "port": "3306",
    "database": "databasename",
    "password": "password"
  }
}

(我排除了敏感数据)

现在我从 server.js 连接到数据库的方式是:
    var env = app.get('env') == 'development' ? 'dev' : app.get('env');
var port = process.env.PORT || 8080;

var Sequelize = require('sequelize');

// db config
var env = "dev";
var config = require('./database.json')[env];
var password = config.password ? config.password : null;

// initialize database connection
var sequelize = new Sequelize(
    config.server,
    config.database,
    config.user,
    config.port,
    config.password,
    {
        logging: console.log,
        define: {
            timestamps: false
        }
    }
);

关于这一点的“悲伤”是我没有抛出任何错误,但我知道它没有连接,因为它没有从数据库中收集任何数据。

那么我做错了什么?

最佳答案

查看用于创建新 sequelize 实例的 API 文档:http://docs.sequelizejs.com/en/latest/api/sequelize/

只有数据库、用户和密码应该作为参数传递,其余的在选项对象中。

var sequelize = new Sequelize(
    config.database,
    config.user,
    config.password,
    {
        port: config.port,
        host: config.server,
        logging: console.log,
        define: {
            timestamps: false
        }
    }
);

关于javascript - sequelize 远程数据库访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29259135/

10-16 12:14
查看更多