loopback-with-domain
loopback-with-domain
Last updated 5 years ago by cureapp .
Repository · Original npm · Tarball · package.json
$ cnpm install loopback-with-domain 
SYNC missed versions from official npm registry.

loopback-with-domain

run loopback server with "domain"

domain is in this context business logic, the same as Domain-Driven Design (DDD).

connection with base-domain

also, this loopback extends original loopback.

  • admin
  • push notification

follow these section to see how to use admin and push notification

install

npm install loopback-with-domain

simplest run, without domain

you can just run loopback without domain information by

require('loopback-with-domain').runWithoutDomain().then (lbInfo) ->

    console.log lbInfo.getURL()         # loopback api root
    console.log lbInfo.getAccessToken() # access token of admin

then loopback server (with admin, push-notification function) runs

run with domain

before running, you can prepare a directory which contains custom config information.

(config-dir) # any name is acceptable
|-- model-definitions.coffee
|-- common
|   |-- server.coffee
|   `-- admin.coffee
|-- development
|   `-- datasources.coffee
`-- production
    `-- datasources.coffee
lbWithDomain = require 'loopback-with-domain'

configDir = '/path/to/config-dir'

domain = require('base-domain').createInstance(dirname: 'domain')

lbWithDomain.runWithDomain(domain, configDir).then ->
    # loopback started

admin

(coming soon)

push notification

(coming soon)

configs

these are the config names.

  • admin
  • datasources
  • middleware
  • server
  • push-credentials

see JSON files in "default-values/non-model-configs" directory. you can set the same properties as these JSONs.

admin

config key meaning
accessToken accessToken for admin

datasources

config key meaning
memory on memory datasource
db datasource for domain entities

server

config key meaning default
restApiRoot REST api root /api
port port number 3000

push-credentials

config key meaning
gcmServerApiKey api key for Google Cloud Messaging (GCM)
apnsCertData certificate pem contents for APNs
apnsKeyData key pem contents for APNs

model definitions

module.exports =
    player: # model name
        base: 'User'  # the same as loopback model settings.base
        aclType: 'admin' # specific for this system

    instrument:
        aclType: 'owner-read'

the same format as loopback model definition except "aclType" value. name, base, relations and properties are automatically set from domain information.

aclType

loopback-with-domain generates acls from aclType.

three types are available.

aclType meaning
admin only admin can CRUD the model
owner admin and the owner of the model can CRUD
public-read everyone can READ the model and admin can CRUD
none everyone can CRUD the model

switching environment

running script with environment variable "NODE_ENV" like

$ NODE_ENV=production node app.js

"development" is selected by default.

when your config dir is

(config-dir) # any name is acceptable
|-- common
|   |-- server.coffee
|   `-- admin.coffee
|-- development
|   `-- datasources.coffee
|-- local
|   `-- datasources.coffee
|-- production
|   `-- datasources.coffee

and launching script like

$ NODE_ENV=local node app.js

then, loopback-with-domain selects configs in "local" directory.

passing custom environment with argument

env = 'production'

lbWithDomain.runWithDomain(domain, configDir, env)

env is prior to NODE_ENV settings.

modified loopback-datasource-juggler

using CureApp/loopback-datasource-juggler.

this repository is almost the same as original one except 'memory' connector handles id as string (orignally integer).

Current Tags

  • 1.4.4                                ...           latest (5 years ago)

11 Versions

  • 1.4.4                                ...           5 years ago
  • 1.4.3                                ...           5 years ago
  • 1.4.2                                ...           5 years ago
  • 1.4.1                                ...           5 years ago
  • 1.4.0                                ...           5 years ago
  • 1.3.3                                ...           5 years ago
  • 1.3.2                                ...           5 years ago
  • 1.3.1                                ...           5 years ago
  • 1.3.0                                ...           5 years ago
  • 1.2.0                                ...           5 years ago
  • 1.1.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (13)
Dev Dependencies (3)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |