2017-10-06 5 views
0

Je veux étendre mon API en utilisant le bouclage. J'ai lu la documentationBouclage - Comment étendre l'API en utilisant le bouclage

'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' 
      } 
     } 
    ); 

}; 

D'abord, j'ai ajouté/status route et cela a bien fonctionné. Mais, quand j'ai essayé d'ajouter/poussoir. Ça ne marchait pas. Je reçois une erreur

{ 
    "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)" 
    } 
} 

Je suis assez sûr, c'est une très petite erreur. Je suis débutant en loopback et essaye d'implémenter le loopback dans mon projet.

Répondre

1

Dans l'exemple, ils définissent la réponse en tant que variable locale à cette méthode distante, ce n'est pas le cas. Deuxièmement, (Meetups, poussoir) vous n'avez pas besoin d'exporter le poussoir ici. Vous ajoutez aux Meetups.