Sails js и Sequelize

Я изучаю Node.js, и я предпочитаю Sails. Я хочу использовать его в проекте с MySql db, и я думаю, что Sequelize Orm более совершенен. Как я могу использовать Sequelize Orm в Sails вместо Waterline?

Спасибо


person Mino    schedule 18.01.2014    source источник


Ответы (4)


Я думаю, что вы можете, поскольку паруса были рождены с продолжением.

Вы можете прочитать ответ Майка Макнила и, возможно, спросить Майк напрямую, если он снова введет поддержку продолжения

person CB Stilborg    schedule 30.01.2014

Недавно вышли два проекта, над которыми я работал, чтобы восстановить полную поддержку продолжения, включая чертежи.

паруса-крюк-sequelize

паруса-крюк-sequelize-чертежи

Посмотрите мой ответ

person FXCesinha    schedule 02.08.2015

$ npm install sails-hook-sequelize
$ npm install sails-hook-sequelize-blueprints
$ npm install sequelize
$ npm install pg pg-hstore
$ npm install continuation-local-storage

.sailsrc

"hooks": {
    "blueprints": false,
    "orm": false,
    "pubsub": false
}

В соединениях.js

somePostgresqlServer: {
    user: 'postgres',
    password: '',
    database: 'database',
    options: {
        host   : 'localhost',
        port   : 5432,
        logging: true
   }
}

В папке модели

// например, возьмем usertable ->users.js

module.exports = {
  attributes: {
    firstname: {
      type: Sequelize.STRING,
      allowNull: false
    },
    secondname: {
      type: Sequelize.STRING,
      allowNull: false
    },
  }

  }
};

или другой способ подключения создать отдельный файл db.js

   module.exports = {
 dbPath: function () {
  return ("postgres://postgres:(user)@localhost:5432/(databasename)");
 }
}
person Nitheesh K P    schedule 25.01.2016

Сначала вы должны установить весь пакет парусов-крюка-sequelize:

npm install sails-hook-sequelize --save

Файл редактирования секунд .sailsrc

 "hooks": {
  "orm": false,
  "pubsub": false
}

файл ./config/models.js

module.exports.models = {
    schema: true,
    connection: 'mysql',
    migrate: 'safe'
};

файл ./config/connections.js

module.exports.connections = {
   mysql: {
        adapter: 'sails-mysql',
        port: 3306,
        user: 'root',
        password: '123456',
        database: 'TestDataBase',
        charset: 'utf8',
        collation: 'utf8-general_ci',
        options: {
            host: 'localhost'
        }
    }
};

определить модели в ./api/models/UserAccount.js

module.exports = {
    attributes: {
        ID: {
            type: Sequelize.BIGINT(20),
            autoIncrement: true,
            allowNull: false,
            primaryKey: true
        },
        UID: {
            type: Sequelize.STRING(255),
            allowNull: false,
            defaultValue: Sequelize.UUIDV4,
        },
        UserName: {
            type: Sequelize.STRING(50),
            allowNull: true
        }
    },
    associations: function() {},
    options: {
        tableName: 'UserAccount',
        createdAt: 'CreatedDate',
        updatedAt: 'ModifiedDate',
        hooks: {}
}
};

Наконец, используйте модель:

UserAccount.findAll({}).then(function(success){}, function(err){
})

Удачи ^^.

person thanh1101681    schedule 26.10.2016
comment
Наш проект был начат год назад, но теперь нам нужно двигаться дальше. Могу ли я использовать их оба параллельно, прежде чем будет выполнен рефакторинг? - person Crusader; 07.06.2017