Можно ли использовать несколько .get на app.route? - PullRequest
0 голосов
/ 22 марта 2019
app.route('/users')
   .post(user.post)
   .get(user.get)
   .get(user.everyone)
   .put(user.update)
   .delete(user.delete);

Я столкнулся с проблемой моей функции, используя два res.send, поэтому я получаю сообщение «Ошибка: невозможно установить заголовок после их отправки».ошибка, чтобы исправить это, я превратил его в две функции, которые я пытаюсь использовать два .get на app.route, но кажется, что я могу использовать только один, так как когда я использую два, вторая не работает.

Есть ли способ использовать два .get в одном app.route?Если нет, каковы мои варианты решения этой проблемы?

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

После вызова res.send ваш сервер отправил ответ в браузер или что-то еще. Вы не можете изменить уже отправленный ответ и его заголовок.

Вы можете использовать несколько обратных вызовов для одного маршрута и одного метода (post, get)

Массив функций обратного вызова может обрабатывать маршрут. Например:

var cb0 = function (req, res, next) {
  console.log('CB0')
  next()
}

var cb1 = function (req, res, next) {
  console.log('CB1')
  next()
}

var cb2 = function (req, res) {
  res.send('Hello from C!')
}

app.get('/example/c', [cb0, cb1, cb2])
0 голосов
/ 22 марта 2019

да, вы можете использовать несколько HTTP-запросов либо .get , либо .post , но с разными параметрами.или маршруты.

0 голосов
/ 22 марта 2019

Вам нужно создать отдельные маршруты для каждой конечной точки API, например:

app.route('/users').get(req, res) => {
//Get all users
});

app.route('/users:/id').get(req, res) => {
   //Get specific user
});

app.route('/users').post(req, res) => {
   //Create new user
});

app.route('/users/:id').put(req, res) => {
   //Update user
});

app.route('/users/:id').delete(req, res) => {
   //Delete user
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...