Search code examples
androidloopbackjsmixins

loopback uses unknown mixin: Timestamp


I am adding timestamp mixin into my models, however when I run

node . 

I get this error:

/home/ubuntu/bike/node_modules/loopback/node_modules/loopback-datasource-juggler/lib/mixins.js:50
      throw new Error(errMsg);
      ^

Error: Model "BalanceHistory" uses unknown mixin: Timestamp
    at MixinProvider.applyMixin (/home/ubuntu/bike/node_modules/loopback/node_modules/loopback-datasource-juggler/lib/mixins.js:50:13)
    at ModelBuilder.defineClass [as define] (/home/ubuntu/bike/node_modules/loopback/node_modules/loopback-datasource-juggler/lib/model-builder.js:649:27)
    at Function.ModelClass.extend (/home/ubuntu/bike/node_modules/loopback/node_modules/loopback-datasource-juggler/lib/model-builder.js:447:33)
    at Registry.createModel (/home/ubuntu/bike/node_modules/loopback/lib/registry.js:122:25)
    at /home/ubuntu/bike/node_modules/loopback-boot/lib/executor.js:245:24
    at Array.forEach (native)
    at defineModels (/home/ubuntu/bike/node_modules/loopback-boot/lib/executor.js:229:23)
    at setupModels (/home/ubuntu/bike/node_modules/loopback-boot/lib/executor.js:197:3)
    at execute (/home/ubuntu/bike/node_modules/loopback-boot/lib/executor.js:40:3)
    at bootLoopBackApp (/home/ubuntu/bike/node_modules/loopback-boot/index.js:154:3)
    at Object.<anonymous> (/home/ubuntu/bike/server/server.js:23:1)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:140:18)
    at node.js:1043:3

in my model-config.json i have already changed to :

"_meta": {
"sources": [
  "loopback/common/models",
  "loopback/server/models",
  "../common/models",
  "./models"
],
"mixins": [
  "loopback/common/mixins",
  "../node_modules/loopback-ds-timestamp-mixin",
  "../common/mixins"
]}

and it's strange that even though i have already changed to ../node_modules/loopback-ds-timestamp-mixin, it still loads node_modules/loopback/node_modules/loopback-datasource-juggler/lib/mixins.js which is not what I want. does anyone know how to set it up correctly?


Solution

  • The loopback-ds-timestamp-mixin mixin defines itself as TimeStamp; with an uppercase "S" so define it that way in the mixins object of your BalanceHistory JSON definition file.

    BTW, node_modules/loopback/node_modules/loopback-datasource-juggler/lib/mixins.js is the file where the exception was thrown it's not where loopback was looking for your mixins.