Search code examples
node.jsloopbackjsstrongloop

How should I do if I am going to define a model called User in loopbackjs from an api-server application?


I created an api-server loopbackjs application and I want to define a model called User having completely different properties with the built-in one. So when I run slc loopback:model, it throws an error as below.

events.js:163
      throw er; // Unhandled 'error' event
      ^
ValidationError: The `ModelDefinition` instance is not valid. Details: `name` is not unique (value: "User").
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/dao.js:326:12
    at ModelConstructor.<anonymous> (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/validations.js:511:13)
    at ModelConstructor.next (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/hooks.js:82:12)
    at done (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/validations.js:508:25)
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/validations.js:586:7
    at ModelConstructor.<anonymous> (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/validations.js:380:5)
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/dao.js:1985:11
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/node_modules/async/lib/async.js:396:17
    at done (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/node_modules/async/lib/async.js:167:19)
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/node_modules/async/lib/async.js:40:16
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/node_modules/async/lib/async.js:393:21
    at /usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/dao.js:1962:17
    at doNotify (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/observer.js:99:49)
    at doNotify (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/observer.js:99:49)
    at doNotify (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/observer.js:99:49)
    at doNotify (/usr/lib/node_modules/strongloop/node_modules/loopback-datasource-juggler/lib/observer.js:99:49)

I'd really appreciate that anyone can shed a light on this issue if I really need a model called User in my application.


Solution

  • loopback comes with some built-in models;-) User is one of them. name your model in lowercase(user).

    it's better that your user model inherit from the loopback's User model because there are lots of implemented functionalities you may need.