app.js 1.2 KB
// Copyright IBM Corp. 2013,2016. All Rights Reserved.
// Node module: loopback-datasource-juggler
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
'use strict';

var ModelBuilder = require('../../loopback-datasource-juggler').ModelBuilder;
var modelBuilder = new ModelBuilder();
// define models
var Post = modelBuilder.define('Post', {
  title: {type: String, length: 255},
  content: {type: ModelBuilder.Text},
  date: {type: Date, default: function() {
    return new Date();
  }},
  timestamp: {type: Number, default: Date.now},
  published: {type: Boolean, default: false, index: true},
});

// simpler way to describe model
var User = modelBuilder.define('User', {
  name: String,
  bio: ModelBuilder.Text,
  approved: Boolean,
  joinedAt: Date,
  age: Number,
});

var Group = modelBuilder.define('Group', {group: String});

// define any custom method
User.prototype.getNameAndAge = function() {
  return this.name + ', ' + this.age;
};

var user = new User({name: 'Joe'});
console.log(user);

console.log(modelBuilder.models);
console.log(modelBuilder.definitions);

User.mixin(Group);
var user = new User({name: 'Ray', group: 'Admin'});
console.log(user);