环回错误:找不到模型:书:当我使用命令创建新模型后尝试运行时

Posted

技术标签:

【中文标题】环回错误:找不到模型:书:当我使用命令创建新模型后尝试运行时【英文标题】:loopback Error: Model not found: Book : When I try to run after creating a new model using command 【发布时间】:2016-11-25 22:09:47 【问题描述】:

通过生成 slc loopback:model book 创建新模型时, 当我尝试运行 app 时,出现以下错误

> 错误:找不到模型:在 Function.registry.getModel 处预订 > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback/lib/registry.js:273:9) > 在 > /home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:156:28 > 在 Array.forEach (native) 在 defineModels > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:151:23) > 在 setupModels > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:140:3) > 在执行 > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:28:3) > 在 bootLoopBackApp > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/index.js:125:3) > 在对象。 > (/home/joseph/node_projects/laplace-master/enquete/server/server.coffee:24:1) > 在对象。 > (/home/joseph/node_projects/laplace-master/enquete/server/server.coffee:1:1) > 在 Object.loadFile 的 Module._compile (module.js:409:26) > (/usr/lib/node_modules/coffee-script/lib/coffee-script/register.js:16:19) > 在 Module.load > (/usr/lib/node_modules/coffee-script/lib/coffee-script/register.js:45:36) > 在 Module.require 的 Function.Module._load (module.js:300:12) > (module.js:353:17) 在需要 (internal/module.js:12:17) 在 Object. > (/home/joseph/node_projects/laplace-master/enquete/handlers/conditionchecker/brand_condition.coffee:5:7) > 在对象。 > (/home/joseph/node_projects/laplace-master/enquete/handlers/conditionchecker/brand_condition.coffee:1:1) > 在 Object.loadFile 的 Module._compile (module.js:409:26) > (/usr/lib/node_modules/coffee-script/lib/coffee-script/register.js:16:19) > 在 Module.load > (/usr/lib/node_modules/coffee-script/lib/coffee-script/register.js:45:36) > 在 Module.require 的 Function.Module._load (module.js:300:12) > (module.js:353:17) 在需要 (internal/module.js:12:17) 在 Object. > (/home/joseph/node_projects/laplace-master/enquete/common/models/question-group.js:13:3) 在 Module._compile (module.js:409:26) 在 Object.Module._extensions.. js > (module.js:416:10) 在 Module.load > (/usr/lib/node_modules/coffee-script/lib/coffee-script/register.js:45:36) > 在 Module.require 的 Function.Module._load (module.js:300:12) > (module.js:353:17) at require (internal/module.js:12:17) at > /home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:170:20 > 在 Array.forEach (native) 在 defineModels > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:151:23) > 在 setupModels > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:140:3) > 在执行 > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/lib/executor.js:28:3) > 在 bootLoopBackApp > (/home/joseph/node_projects/laplace-master/enquete/node_modules/loopback-boot/index.js:125:3) > 在对象。 > (/home/joseph/node_projects/laplace-master/enquete/server/server.coffee:24:1) > 在对象。 > (/home/joseph/node_projects/laplace-master/enquete/server/server.coffee:1:1) > 在 Object.exports.run 的 Module._compile (module.js:409:26) > (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:154:23) > 在 compileScript > (/usr/lib/node_modules/coffee-script/lib/coffee-script/command.js:224:29) > 在编译路径 > (/usr/lib/node_modules/coffee-script/lib/coffee-script/command.js:174:14) > 在 Object.exports.run > (/usr/lib/node_modules/coffee-script/lib/coffee-script/command.js:98:20) > 在对象。 (/usr/lib/node_modules/coffee-script/bin/coffee:7:41)在 > 模块._compile (module.js:409:26) 在 Object.Module._extensions..js > (module.js:416:10) 在 Module.load (module.js:343:32) 在 > Function.Module._load (module.js:300:12) 在 Function.Module.runMain > (module.js:441:10) 在启动时 (node.js:139:18) 在 node.js:968:3

这是我的模型类和配置文件。

book.js

module.exports = function(Book) 

;

book.json


  "name": "Book",
  "base": "PersistedModel",
  "idInjection": true,
  "options": 
    "validateUpsert": true
  ,
  "properties": 
    "id": 
      "type": "string",
      "required": true,
      "default": "1"
    ,
    "name": 
      "type": "string",
      "required": true,
      "default": "nil"
    
  ,
  "validations": [],
  "relations": ,
  "acls": [],
  "methods": 

在 server/model-config.json 中


  "_meta": 
    "sources": [
      "../common/models",
      "./models"
    ]
  ,
  "User": 
    "dataSource": "db"
  ,
  "AccessToken": 
    "dataSource": "mysql",
    "public": false
  ,
  "ACL": 
    "dataSource": "mysql",
    "public": false
  ,
  "RoleMapping": 
    "dataSource": "mysql",
    "public": false
  ,
  "Role": 
    "dataSource": "mysql",
    "public": false
  ,
  "Book": 
    "dataSource": "mysql",
    "public": false
  

请帮忙解决这个问题。

【问题讨论】:

这方面有什么更新吗? 【参考方案1】:

我相信您可能没有在数据源中初始化模型。

您需要在启动脚本中运行以下代码(例如,将代码保存到 ./server/boot/prepare-db.js。给它起您想要的名称,但它必须在 ./server/boot 子文件夹中。)

module.exports = function prepareDB(app, cb) 
    var ds = app.dataSources.mysql;
    ds.automigrate(function() 
       console.log("MySQL db ready");
    );

automigrate 函数记录在 here。

【讨论】:

以上是关于环回错误:找不到模型:书:当我使用命令创建新模型后尝试运行时的主要内容,如果未能解决你的问题,请参考以下文章

警告:不推荐使用常量 ::Fixnum 生成新模型时

Codeigniter:多级模型扩展不起作用。收到错误“找不到类”

测试新模型时找不到 Eloquent 类

“找不到源存储的模型”核心数据错误

“form_with 找不到 Post 模型”

找不到映射模型(Cocoa 错误 134140)