0.0.2 • Published 10 years ago
infrastructure-mysql v0.0.2
Installation:
npm install https://github.com/shstefanov/infrastructure-mysql.gitConfiguration:
In "data" structure configuration add:
- In engines array: - "engines": "infrastructure-mysql/engine" 
- In loaders the built-in data loader - "loaders": "data" 
- In libs: - "libs":{ "MysqlLayer": "infrastructure-mysql/MysqlLayer" } 
- In "config": - "config": { "mysql": { "host" : "localhost", "user" : "user_name", "password" : "user_password", "database" : "db_name" } 
 }
The MysqlLayer class
In folder, where datalayers are make file:
module.exports = function(){
  var env     = this;
  return env.lib.MysqlLayer.extend("MysqlModel", {
    tableName: "models",
    primaryKey: "model_id",
    
    fields: {  // There is no role for fields values for now. The keys are used to filter given objects when creating or updating data
      model_id: "INT NOT NULL AUTO_INCREMENT PRIMARY KEY",
      field_a:  "varchar(10)",
      field_b:  "int"
    }
  });
};For now it will work only with existing tables, so make sure the table exists in the database
Queries:
// Create a record
env.i.do("data.Blueprint.create", {
  path: "test.path",
  field_a:333,
  name: "Some name",
}, function(err, record){
  console.log("data.Blueprint.create", record);
});// Find all records
env.i.do("data.Blueprint.find", function(err, records){
  console.log("data.Blueprint.find", records);
});// Find one record by id
env.i.do("data.Blueprint.find", 5, function(err, record){
  console.log("????", record);
});// Find multiple records by array of ids
env.i.do("data.Blueprint.find", [5,6,7], function(err, records){
  console.log("data.Blueprint.find", records);
});// Find multiple records by condition
env.i.do("data.Blueprint.find", {
  name: ["NOT IN", '1434118856493', 1434118849186 ], // 1434118849186 || [ 1434118849186, 1434118849186 ] || [">=", 1434118849186, 1434118849186 ]
  path: 'test.path'
}, function(err, records){
  console.log("data.Blueprint.find", records);
});// Find multiple records by condition and some options
env.i.do("data.Blueprint.find", {
  name: [">", 0], // 1434118849186 || [ 1434118849186, 1434118849186 ] || [">=", 1434118849186, 1434118849186 ]
  path: 'test.path'
}, {
  limit: [3, 3],
  order: ["name", "DESC"]
}, function(err, records){
  console.log("data.Blueprint.find", records);
});// Update record
env.i.do("data.Blueprint.update", {
  // if primaryKey provided - only one record will be updated
  name: [">", 0], // varriants: 1434118849186 || [ 1434118849186, 1434118849186 ] || [">=", 1434118849186, 1434118849186 ]
  path: 'test.path'
}, {
  // where: { ... } - if omitted, all records will be updated, otherwise where clause will be generated
  limit: [3, 3],
  order: ["name", "DESC"]
}, function(err, result){
  console.log("data.Blueprint.update", result);
});// Delete all record
env.i.do("data.Blueprint.delete", function(err, result){
  console.log("data.Blueprint.delete", result);
});
// Delete one record by id
env.i.do("data.Blueprint.delete", 15, function(err, result){
  console.log("data.Blueprint.delete", result);
});
// Delete with where condition
env.i.do("data.Blueprint.delete", {field: value, otrherField: ["Between"]}, function(err, result){
  console.log("data.Blueprint.delete", result);
});0.0.2
10 years ago