#javascript #mongoose #feathersjs
#javascript #mongoose #feathersjs
Вопрос:
Я пишу API, чтобы попробовать featherjs с его адаптером mongoose. Я хочу, чтобы моя GET /books/
конечная точка возвращала книги только с private
атрибутом, установленным в false. Должен ли я использовать хук before? Если это так, как мне запретить пользователям запускать пользовательские запросы в моей конечной точке? Должен ли я вручную очистить params
объект?
Ответ №1:
Вам нужно создать, перед подключением books.hooks.js
const books_qry = require('../../hooks/books_qry');
module.exports = {
before: {
all: [],
find: [books_qry()],
...
Создать /src/hooks/books_qry.js
module.exports = function () {
return function (context) {
//You have 2 choices to change the context.params.query
//overwrite any request for a custom query
context.params.query = { private: false };
//or add a query param to the request for a custom query
context.params.query.private = false
//check the updated context.params.query
console.log(context.params.query);
return context;
}
}
Выберите один из вариантов, который вам нужен. Поскольку на данный момент я никогда не использовал mongoose, проверьте документацию, чтобы создать правильный запрос (кстати, приведенный выше пример работает для адаптера mongodb)