This documentation is deprecated
Please see the new LoopBack documentation site.
Skip to end of metadata
Go to start of metadata


If you already have a back-end schema (like a database), create models based on it using LoopBack's discovery feature. See Discovering models from relational databases.


The easiest way to create a new model is with slc loopback:model, the model generator.  When creating a new model, the generator will prompt you for the properties in the model.  Subsequently, you can add more properties to it using the Property generator.

When you create a model (for example, called "myModel"), the tool:

  • Creates /common/models/myModel.json, the Model definition JSON file.
  • Creates /common/models/myModel.js, where you can extend the model programmatically; for example to add remote methods.  See Adding application logic for more information.
  • Adds an entry to /server/model-config.json for the model, specifying the model's data source.  See model-config.json for more information.

Once you've created your model, you may want to read:

Basic use

Use the LoopBack model generator to create a new model.   In your application root directory, enter the command (for example, to create a "books" model):


Then slc will prompt you to:

  • Choose the data source to which the model will connect.  By default, there will be only the in-memory data source (named "db").  When you create additional data sources with slc loopback:datasource, the data source generator, they will be listed as options.
  • Choose the model's base class, from a list of built-in models classes and existing custom models in the application.  


    In general, use PersistedModel as the base model when you want to store your data in a database using a connector such as MySQL or MongoDB.  Use Model as the base for models that don't have CRUD semantics, for example, using connectors such as SOAP and REST.

  • Choose whether to expose the model over REST; the default is yes. 
  • Enter a custom plural form; the default is to use standard plural (for example, "books").
  • Add properties to the model; for each property it will prompt you for:
Adding properties

After you create a model, you can add more properties with the property generator.

Then slc will prompt you to choose the model to which you want to add the property, along with the other property settings (as before).  Then, slc will modify the model definition JSON file accordingly.

Adding default values

One way to set a default value for a property is to set the "default" property in the models JSON file.  You can also set the defaultFn property to set the default value to a globally-unique identifer (GUID) or the timestamp.

For more information, see the model JSON file General property properties section.