2014-11-18 9 views

Odpowiedz

19

Oto prosty przykład. Jeśli masz model produktu (/ wspólne/modeli /product.json), rozszerzyć model dodając /common/models/product.js plik:

module.exports = function(Product) { 

    Product.byCategory = function (category, cb) { 

     var ds = Product.dataSource; 
     var sql = "SELECT * FROM products WHERE category=?"; 

     ds.connector.query(sql, category, function (err, products) { 

      if (err) console.error(err); 

      cb(err, products); 

     }); 

    }; 

    Product.remoteMethod(
     'byCategory', 
     { 
      http: { verb: 'get' }, 
      description: 'Get list of products by category', 
      accepts: { arg: 'category', type: 'string' }, 
      returns: { arg: 'data', type: ['Product'], root: true } 
     } 
    ); 

}; 

stworzy następujący końcowy przykład: GET/produkty/byCatego Ry? group = komputery

http://docs.strongloop.com/display/public/LB/Executing+native+SQL

+0

Istnieje kilka literówek: 'Product.byGroup' powinno być' Product.byCategory' oraz '" SELECT * FROM products' powinno być '" SELECT * FROM products' –

+1

czy możesz podać przykład przechowywać model w DB? Mam na myśli, jak stworzyć nowy "produkt", a następnie wstawić –

+0

i .. inne pytanie, co z SQL Injection? –

1
  1. narażać pilota zdalnego metodę w swoich /common/models/model.js
  2. wykonania zapytania SQL w sposób zdalny (poprzez dataSource.connector.query(sql, cb);
+0

Co zrobić, jeśli chcesz tylko jednego pilota zdalnego metodę na nowy model? W tym przypadku myślę, że przy użyciu Twojej sugestii musiałbyś wyłączyć wszystkie domyślne metody zdalne, takie jak find, updateAll, itp., Używając [disableRemoteMethod] (https://docs.strongloop.com/display/public/LB/Exposing+models+over + REST # ExposingmodelsoverREST-Hidingmethods iRESTendpoints) prawda? –

+0

Tak, wierzę, że to jedyny sposób ATM. Myślę, że jest to coś, co musimy ułatwić LoopBack 3, ponieważ w przeszłości widziałem wiele próśb o funkcję wyłączającą wszystko lub zezwalającą tylko na n zdalnych metod itp. Zobacz https://github.com/strongloop/loopback/ issues/843 # issuecomment-112950822 – superkhau

Powiązane problemy