ES6中的环回模型

问题描述 投票:4回答:1

我是loopback.js的新手。我想对类使用ES6语法。

如何使用loopback定义模型的方式实现这一目标?

module.exports = function(MyModel) {
  MyModel.on('dataSourceAttached', function(obj){
    var find = MyModel.find;
    MyModel.find = function(filter, cb) {
      return find.apply(this, arguments);
    };
  });
};
javascript node.js ecmascript-6 loopbackjs
1个回答
3
投票

qazxsw poi的一些想法我在ES6中为管理模型创建了一个bootstrapping类。我在ES5和ES6中创建了2个示例。

ES5模型示例

https://github.com/NextFaze/Loopback-Style-Guide#custom-model-methods

ES6模型示例

module.exports = function(Sbif) {

  var request = require('request-promise'),
      token    = process.env.SBIF_TOKEN_URL,
      api_url  =  process.env.SBIF_API_URL;

  // UTM ---------------------------------------------
  Sbif.utm = function(params, cb) {
    makeRequest('utm',{}).then(function(res) {
      cb(null, JSON.parse(res).UTMs[0]);
    });
  };

  Sbif.remoteMethod('utm',{
    accepts: {arg: 'params', type: 'string'},
    returns: {arg: 'utm', type: 'string'},
    http: {path: '/utm', verb: 'get' }
  });

  // IPC ---------------------------------------------
  Sbif.ipc = function(params, cb) {
    makeRequest('ipc', {}).then(function(res) {
      cb(null, JSON.parse(res).IPCs[0]);
    });
  };

  Sbif.remoteMethod('ipc', {
    accepts: {arg: 'params', type: 'string'},
    returns: {arg: 'ipc', type: 'string'},
    http: {path: '/ipc'}
  });

  // EURO --------------------------------------------
  Sbif.euro = function(params, cb) {
    makeRequest('euro', {}).then(function(res) {
      cb(null, JSON.parse(res).Euros[0]);
    });
  };

  Sbif.remoteMethod('euro', {
    accepts: {arg: 'params', type: 'string'},
    returns: {arg: 'euro', type: 'string'},
    http: {path: '/euro'}
  });

  // Dolár -------------------------------------------
  Sbif.dolar = function(params, cb) {
    makeRequest('dolar',{}).then(function(res) {
      cb(null,JSON.parse(res).Dolares[0]);
    });
  };

  Sbif.remoteMethod('dolar', {
    accepts: {arg: 'params', type: 'string'},
    returns: {arg: 'dolar', type: 'string'},
    http: {path: '/dolar'}
  });


  // UF ----------------------------------------------
  Sbif.uf = function(params, cb) {
    makeRequest('uf',{}).then(function(res) {
      cb(null, JSON.parse(res).UFs[0]);
    });
  };

  Sbif.remoteMethod( 'uf',{
    accepts: {arg: 'params', type: 'string'},
    returns: {arg: 'uf', type: 'string'},
    http: {path: '/uf', verb: 'get' }
  });


  // SBIF Token and URL
  function makeRequest(indicador, parametros){
    return request(buildUrl(indicador, parametros));
  }

  function buildUrl(indicador, parametros){
    var url = api_url + indicador;
    if(parametros.length > 0){
      parametros.forEach((parametros) {
        url += '/' + parametros; 
      });
    }
    return url + "?apikey=" + token + "&formato=json";
  }


};
© www.soinside.com 2019 - 2024. All rights reserved.