2016-05-22 1 views
2

Я запускаю node.js Server, который обрабатывает вызовы REST Api. Ответ этих вызовов будет либо одним, либо списком объектов MongoDB (JSON).Как автоматически создать REST API node.js/MongoDB

Я уже читал о параметрах и порядке их обработки. Но есть ли способ автоматически сделать это?

Допустим, у меня есть коллекция Пользователь:

name: String, 
hobby: String, 
age: Number 

Теперь я хочу, чтобы получить список всех пользователей, которые имеют возраст = 18.

Я знаю, что я могу восстановить параметры, как это:

url: http://localhost:3000/user?age=18&hobby=something 

var app = express(); 
app.get('/user', function (req,res) { 

    var age=req.query.age; 
    var hobby=req.query.hobby; 

    mondodbUser.find(...); 
} 

Но предположим, что пользователь имеет 10 различных свойств и у меня есть 15 различных коллекций. Разве я не могу сделать это динамически? Так что мне не нужно восстанавливать все возможные параметры?

Я хочу, чтобы можно было найти MongoDB так, как все заданные параметры используются.

Надеюсь, я смог бы выразить себя достаточно хорошо: D Спасибо!

+0

_assume, что пользователь имеет 10 различных свойств и у меня есть 15 различных Collections_, пожалуйста, вы можете уточнить по этому поводу? – chridam

+0

Я не хочу вручную восстанавливать каждый параметр из URI и использовать его в методе find() для mongoDB, а просто вызвать метод find() с любыми параметрами, указанными в URI. – HideAndSeek

+0

Возможно, я переутомил это, и я мог просто попытаться восстановить каждый параметр и просто дать его методу find, даже если его NULL/undefined? – HideAndSeek

ответ

2

Поскольку req.query возвращает объект JS после строки запроса, разобранные, где объект будет иметь свойства, определенные в строке запроса, например:

/user?name=andrew&age=22

req.query возвращает объект { name: "andrew", age: "22" }

и, следовательно, он может использоваться как аргумент метода find(), если свойства в объекте совпадают с базовой схемой документа коллекции.

Вы можете сделать:

app.get('/user', function (req, res) { 
    User.find(req.query, function (err, users){ ... }); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^