sequelize远程数据库访问

时间:2015-03-25 14:55:59

标签: javascript mysql node.js sequelize.js

我有一个数据库,我以前一直在远程访问(使用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
        }
    }
);

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

那么我做错了什么?

1 个答案:

答案 0 :(得分:3)

查看用于创建新的续集实例的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
        }    
    }
);