NodeJS client library with loopback SDK syntax
$ npm install --save loopback-nodejs-client
var LoopbackClient = require('loopback-nodejs-client')
var loopbackClient = new LoopbackClient('http://localhost:3000/api');
var Customers = loopbackClient.getModel('customers')
Customers.create({name: 'ido4pro', city: 'plougonvelin'})
.then(function (customer) {
console.log(customer)
Customers.find({filter: {where: {name: 'ido4pro'}}})
.then(function (customers) {
console.log(customers)
})
.catch(function (err) {
console.log(err)
})
Customers.count({where: {name: 'ido4pro'}})
.then(function (customers) {
console.log(customers)
})
.catch(function (err) {
console.log(err)
})
})
.catch(function (err) {
console.log(err)
})
var loopbackClientWithAuth = new LoopbackClient('http://localhost:3000/api','xxx EMAIL USER xxx', 'xxx PASSWORD xxx')
loopbackClientWithAuth.createToken()
.then(function()
{
var Customers = loopbackClientWithAuth.getModel('customers')
Customers.count({where: {name: 'ido4pro'}})
.then(function (customers) {
console.log(customers)
})
.catch(function (err) {
console.log(err)
})
})
var loopbackClientWithAuth = new LoopbackClient('http://localhost:3000/api','xxx EMAIL USER xxx', 'xxx PASSWORD xxx')
// Default Value is : '/users/login?include=user'
loopbackClientWithAuth.setCustomLoginPath('/user/login?include=user')
loopbackClientWithAuth.createToken()
.then(function()
{
var Customers = loopbackClientWithAuth.getModel('customers')
Customers.count({where: {name: 'ido4pro'}})
.then(function (customers) {
console.log(customers)
})
.catch(function (err) {
console.log(err)
})
})
Try to be compliant with https://loopback.io/doc/en/lb3/Working-with-data.html
create(data) --> data = { id: 'xxx', filter: {...} } (filter is optional)
count(query) --> query = { where : {name: 'xxx'} }, where = { where: {and: [{name: 'xxx'},{city: 'xxx'}]
*NOT AVAILABLE IN LLOPBACK EXTERNALLY * updateAll(query,data) --> query = { where : {name: 'xxx'} }, where = { where: {and: [{name: 'xxx'},{city: 'xxx'}]
updateById(id,data)
updateAttributesById(id,data)
find(filter)
findById(data)
findOne(query)
deleteById(id)
replaceOrCreate(data)
upsertWithWhere(query,data) --> query = { where : {name: 'xxx'} }
replaceOrCreate(data)
remote(customRoute,data) -> your customRoute name (example: greet) see https://loopback.io/doc/en/lb3/Remote-methods.html
remote(customRoute,query,data) -> your customRoute name (example: greet) see https://loopback.io/doc/en/lb3/Remote-methods.html
remoteGet(customRoute,query)
remotePut(customRoute,data)
remotePatch(customRoute,data)
All methods accepts an option object to define timeout and/or additionnals headers
find({},{ timeout:2000, headers:{'TAG_ID':'146464646464}})
Check the test/index.js
This lib use debug (https://github.com/visionmedia/debug) to log request
Activate log trace with environment variable "DEBUG=LoopBackClient"
example : DEBUG=LoopBackClient npm run test
MIT © Stéphane GUILLY