
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
mysql-model
Advanced tools
A backbone based model for communicating with a MySQL database using felixge/node-mysql.
A backbone based model for communicating with a MySQL database using felixge/node-mysql.
Install from npm package:
npm install mysql-model
Or install from git:
npm install git://github.com/michalkow/node-mysql-model.git
Add the mysql-model module to your application :
var mysqlModel = require('mysql-model');
Then create a model that will be main one for your application (all others will extend it):
var MyAppModel = mysqlModel.createConnection({
host : 'database-host',
user : 'database-user',
password : 'database-password',
database : 'database-name',
});
var Movie = MyAppModel.extend({
tableName: "movies",
});
movie = new Movie();
// OR
movie = new MyAppModel({tableName: "movies"});
To see complete list of options for creating a connection with the database visit felixge/node-mysql readme.
Name of a MySQL table the model will refer to:
var Movie = MyAppModel.extend({
tableName: "movies",
});
Retrieves records from database
Usage:
movie.find();
movie.find(method);
movie.find(callback);
movie.find(method, conditions);
movie.find(method, callback);
movie.find(method, conditions, callback);
Parameters:
Example:
movie.find('all', {where: "year > 2001"}, function(err, rows, fields) {
// Do something...
});
Saves your model to database
Usage:
movie.save();
movie.save(where);
movie.save(callback);
movie.save(where, callback);
Parameters:
Example:
movie = new Movie({
name: 'Serenity',
director: 'Joss Whedon',
language: 'English',
year: 2005
});
// Will create new record
movie.save();
movie.set('id', 4);
// Will update record if id exists
movie.save();
Deletes your model from database and unsets it
Usage:
movie.remove();
movie.remove(where);
movie.remove(callback);
movie.remove(where, callback);
Parameters:
Example:
// Will delete record from database matching id model
movie.set('id', 8);
movie.remove();
// Will delete records from database matching where condition
movie.remove('year < 1980');
Retrieves record from database and set it to current model
Usage:
movie.read();
movie.read(id);
movie.read(callback);
movie.read(id, callback);
Parameters:
Example:
movie.set('id', 6);
movie.read();
// or
movie.read(6);
Runs custom query
Usage:
movie.query(query);
movie.query(query, callback);
Parameters:
Example:
movie.query("SELECT name FROM movies WHERE director = 'James Cameron' ORDER BY year", function(err, rows, fields) {
// Do something...
});
Method to replace 'set', when setting results passed back by node-mysql
Usage:
movie.setSQL(result);
Parameters:
Example:
movie.find('first', {where: "id=12"}, function(err, row) {
movie.setSQL(row);
});
Returns all the records matching conditions
Returns:
Example:
movie.find('all', {where: "language = 'German'", limit: [0, 30]}, function(err, rows) {
for(var i=0; i<rows.length; i++) {
console.log(rows[i]);
}
});
Returns number of records matching conditions
Returns:
Example:
movie.find('count', {where: "year = 2012"}, function(err, result) {
console.log(result);
});
Returns first the records matching conditions
Returns:
Example:
movie.find('first', {where: "id = 3"}, function(err, row) {
console.log(row);
});
Returns field of the first record matching conditions
Returns:
Example:
movie.find('field', {fields: ['name'], where: "id = 3"}, function(err, field) {
console.log(field);
});
Fields to select from the table
Accepts:
Example:
movie.find('all', {fields: ['id', 'name', 'year']});
// SELECT id, name, year FROM movies
movie.find('all', {fields: "name"});
// SELECT name FROM movies
Operators for MySQL WHERE clause.
Accepts:
Example:
movie.find('all', {where: "year > 1987"});
// SELECT * FROM movies WHERE year > 1987
Operators for MySQL GROUP BY clause.
Accepts:
Example:
movie.find('all', {group: ['year', 'name']});
// SELECT * FROM movies GROUP BY year, name
movie.find('all', {group: "name"});
// SELECT * FROM movies GROUP BY name
If true, sets descending order for GROUP BY
Accepts:
Example:
movie.find('all', {group: ['year', 'name'], groupDESC:true});
// SELECT * FROM movies GROUP BY year, name DESC
Operators for MySQL HAVING clause.
Accepts:
Example:
movie.find('all', {fields: ['name', 'COUNT(name)'], group: "name", having: "COUNT(name) = 1"});
// SELECT name, COUNT(name) FROM movies GROUP BY name HAVING COUNT(name) = 1
Operators for MySQL ORDER BY clause.
Accepts:
Example:
movie.find('all', {group: ['year', 'name']});
// SELECT * FROM movies ORDER BY year, name
movie.find('all', {group: "name"});
// SELECT * FROM movies ORDER BY name
If true, sets descending order for ORDER BY
Accepts:
Example:
movie.find('all', {group: ['year', 'name'], orderDESC:true});
// SELECT * FROM movies ORDER BY year, name DESC
Operators for MySQL LIMIT clause.
Accepts:
Example:
movie.find('all', {limit: [0, 30]});
// SELECT * FROM movies LIMIT 0, 30
movie.find('all', {limit: "10, 40"});
// SELECT * FROM movies LIMIT 10, 40
node-mysql-model is released under MIT license.
node-mysql-model was created by Michał Kowalkowski. You can contact me at kowalkowski.michal@gmail.com
FAQs
A backbone based model for communicating with a MySQL database using felixge/node-mysql.
The npm package mysql-model receives a total of 154 weekly downloads. As such, mysql-model popularity was classified as not popular.
We found that mysql-model demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.