首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制模型

定制模型
EN

Stack Overflow用户
提问于 2015-10-20 08:41:36
回答 2查看 585关注 0票数 1

我正在尝试根据这个链接定制模型,https://docs.strongloop.com/display/public/LB/Customizing+models

common/models/MyModel.js

代码语言:javascript
复制
module.exports = function(Review) {
    Review.on('dataSourceAttached', function(obj) {
        var find = Review.find

        Review.find = function(filter, cb) {
            // cb is not a function

        }
    }

}

响应体

代码语言:javascript
复制
{
    "error": {
        "name": "TypeError",
        "status": 500,
        "message": "cb is not a function",
        "stack": "TypeError: cb is not a function\n at Function.Review.find (/home/test/dev/common/models/review.js:19:7)\n at Function.findOne (/home/test/dev/node_modules/loopback-datasource-juggler/lib/dao.js:1546:8)\n at SharedMethod.invoke (/home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/shared-method.js:248:25)\n at HttpContext.invoke (/home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/http-context.js:384:12)\n at /home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/remote-objects.js:620:11\n at execStack (/home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/remote-objects.js:460:7)\n at RemoteObjects.execHooks (/home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/remote-objects.js:464:10)\n at /home/test/dev/node_modules/loopback/node_modules/strong-remoting/lib/remote-objects.js:617:10\n at /home/test/dev/node_modules/loopback/lib/application.js:357:13\n at /home/test/dev/node_modules/loopback/lib/model.js:313:7"
    }
}

Review.find是从这3个接口中调用的,只有find()工作,其余的不提供回调。

根据API文档,应该是https://apidocs.strongloop.com/loopback/#persistedmodel-findone

代码语言:javascript
复制
findById() GET /reviews/:id
find() GET /reviews
findOne() GET /reviews/findOne

有什么帮助吗?

非常感谢

EN

回答 2

Stack Overflow用户

发布于 2015-10-20 23:28:47

正如https://docs.strongloop.com/display/public/LB/Customizing+models中所述,您需要添加

代码语言:javascript
复制
return find.apply(this, arguments);
票数 1
EN

Stack Overflow用户

发布于 2016-12-30 02:36:33

我也有这个错误,"cb不是一个函数“。

在我的例子中,这是因为我的本地方法定义和远程方法声明确实匹配,本地方法有一个没有为远程方法声明的参数。

如下所示:

代码语言:javascript
复制
module.exports = (MyModel) => {
  MyModel.sayHi = (thisIsNotDeclaredInRemoteMethod, cb) => {
    cb(null, "Hello there!");
  };

  MyModel.remoteMethod("sayHi", {
    http: {verb: "get"},
    returns: {arg: "msg", type: "string"}
  });
};

希望这能帮上忙,祝你好运!:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33226211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档