2016-03-22 2 views
1

У меня есть две модели: user & order, пользователь может иметь несколько заказов. Поэтому я могу использовать GET /users/{id}/orders, чтобы получить все заказы, принадлежащие этому пользователю.Как добавить параметр запроса к существующему удаленному методу в loopback

Мне интересно, как добавить параметр запроса в HTTP-запрос. например .

В базе данных не зарегистрировано terminated, я храню только terminatedTime, поэтому мне также нужно сделать расчет.

Как я могу это достичь?

ответ

1

Вы должны попробовать where filter для ваших запросов. Если у вас есть логическое поле, называемое terminated следующее работал бы: /users/{id}/orders?filter={"where":{"terminated" : true}}

Предполагая, что terminatedTime является поле Date, ниже URL должен найти заказы для пользователя с terminatedTime после 16-марта-2016.

/users/{id}/orders?filter={"where":{"terminatedTime" : {"gt": "2016-03-16T00:00:00.000Z"}}}

Примечание: Я использовал StrongLoop API Explorer, чтобы попробовать подобные запросы на моем примере приложения. В зависимости от того, где вы его используете, двойные кавычки могут быть или не быть необходимыми.

+0

У меня нет поля под названием 'terminated' in db. Я только закончилTime, но сравнение не работает в моем случае, так как мне нужно только проверить, имеет ли он значение или нет. –

+0

Это может работать: '/ users/{id}/orders? Filter = {" where ": {" terminatedTime ": {" neq ": null}}}' –

0

Если вы пытаетесь получить доступ к строке запроса в своей модели, это сработает.

var loopback = require('loopback'); 

module.exports = function(User) { 
var findOne = User.findOne; 

User.findOne = function(filter, cb) { 
    var context = loopback.getCurrentContext(), 
     terminated = context.active.http.req.query.terminated; 

     //order processing logic 
Смежные вопросы