Usa la API DATA para cambiar de base de datos
DATA es un punto de entrada al query builder independiente de la base de datos. El primer argumento es driver/table; nosql/people significa "la base NoSQL integrada, tabla people". Los métodos del builder (where, sort, take, callback) son los mismos que usas con NOSQL(), así que el código de tus acciones no cambia si más adelante sustituyes el driver.
| Llamada | Hace |
|---|---|
DATA.insert(table, doc) | inserta un documento |
DATA.find(table) | devuelve un builder para una lista |
DATA.read(table) | devuelve un builder para un documento |
DATA.update(table, data) | actualiza documentos |
DATA.remove(table) | elimina documentos |
NEWACTION('People/insert', {
name: 'Insert a person',
input: '*name:String, age:Number',
action: function($, model) {
model.id = UID();
DATA.insert('nosql/people', model).callback(() => $.success(model.id));
}
});
NEWACTION('People/query', {
name: 'List people',
query: 'sort:Lowercase',
action: function($) {
DATA.find('nosql/people').sort($.query.sort || 'name_asc').callback((err, response) => $.callback(response));
}
});
NEWACTION('People/rename', {
name: 'Rename a person',
params: '*id:UID',
input: '*name:String',
action: function($, model) {
DATA.update('nosql/people', { name: model.name }).where('id', $.params.id).callback((err, count) => $.success(count));
}
});exports.install = function() {
ROUTE('POST /people/ --> *People/insert');
ROUTE('GET /people/ --> *People/query');
ROUTE('PATCH /people/{id}/ --> *People/rename');
};