环回 - 如何使用环回扩展 api

Loopback - How to extend api using loopback

我想使用 loopback 扩展我的 api。我已阅读文档

   'use strict';

module.exports = function(Meetups,pusher) {

  Meetups.status = function(cb) {
      var currentDate = new Date();
      var currentHour = currentDate.getHours();
      var OPEN_HOUR = 6;
      var CLOSE_HOUR = 20;
      console.log('Current hour is %d', currentHour);
      var response;
      if (currentHour >= OPEN_HOUR && currentHour < CLOSE_HOUR) {
        response = 'We are open yeah!!! for business.';
      } else {
        response = 'Sorry, we are closed. Open daily from 6am to 8pm.';
      }
      cb(null, response);
    };
    Meetups.remoteMethod(
      'status', {
        http: {
          path: '/status',
          verb: 'get'
        },
        returns: {
          arg: 'status',
          type: 'string'
        }
      }
    );
    Meetups.pusher = function(cb) {

        if (2>1) {
          response = 'sending something';
        } else {
          response = 'mont blanc';
        }
        cb(null, response);
      };
      Meetups.remoteMethod(
        'pusher', {
          http: {
            path: '/pusher',
            verb: 'get'
          },
          returns: {
            arg: 'pusher',
            type: 'string'
          }
        }
      );

};

首先,我添加了 /status 路由,它运行良好。但是,当我尝试添加 /pusher 时。它只是没有用。我收到一个错误

   {
  "error": {
    "statusCode": 500,
    "name": "ReferenceError",
    "message": "response is not defined",
    "stack": "ReferenceError: response is not defined\n    at Function.Meetups.pusher (/Users/ankursharma/Documents/projects/meetupz/common/models/meetups.js:34:20)\n    at SharedMethod.invoke (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/shared-method.js:270:25)\n    at HttpContext.invoke (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/http-context.js:297:12)\n    at phaseInvoke (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/remote-objects.js:677:9)\n    at runHandler (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/lib/phase.js:135:5)\n    at iterate (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:146:13)\n    at Object.async.eachSeries (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:162:9)\n    at runHandlers (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/lib/phase.js:144:13)\n    at iterate (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:146:13)\n    at /Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:157:25\n    at /Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:154:25\n    at execStack (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/remote-objects.js:522:7)\n    at RemoteObjects.execHooks (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/remote-objects.js:526:10)\n    at phaseBeforeInvoke (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/lib/remote-objects.js:673:10)\n    at runHandler (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/lib/phase.js:135:5)\n    at iterate (/Users/ankursharma/Documents/projects/meetupz/node_modules/strong-remoting/node_modules/loopback-phase/node_modules/async/lib/async.js:146:13)"
  }
}

我很确定,这是一个很小的错误。我是环回的初学者,并试图在我的项目中实现环回。

在示例中,他们将 response 定义为该远程方法的局部变量,而您没有。其次,(Meetups,pusher) 你不需要在这里导出 pusher。您正在加入聚会。

您必须在推送器远程方法中声明响应。 另一种不声明响应的方法是,简单地返回值。

示例:

Meetups.pusher = function(cb) {
    if (2>1) {
        return 'sending something';
    } else {
        return 'mont blanc';
    }
};

定义变量和return变量或者你可以直接调用cb in if and else like

Meetups.pusher = function(cb) {
    if (2>1) {
        cb(null,'sending something');
    } else {
        cb(null, 'mont blanc');
    }
};