Почему я должен возвращать функцию при вызове API, но не при вызове контроллера представления в Express (KeystoneJs)? - PullRequest
1 голос
/ 10 июня 2019

В экспрессе мой код для представлений должен соответствовать следующему формату (я также использую keystonejs CMS):

exports = module.exports = function(req, res) {
      // view code
}

Однако, когда я создаю API, который возвращает json, я должен вернутьфункция:

exports = module.exports = function() {
    return function(req, res) {
        // api code
    }
}

Я могу вызывать обе конечные точки одинаково по обычному маршруту, так почему я должен возвращать функцию в API, но не в коде представления?

1 Ответ

0 голосов
/ 13 июня 2019

Оказывается, это не было характерно для трапецеидальных искажений. Мой маршрут для API вызывал контроллер так же, как я вызывал его для сообщения, принимающего параметр.

Маршрут для просмотра сообщения:

app.post('/home/:imgtype', routes.api.imgloader.uploadProfileImg(param));

Маршрут для API, который включает данные формы в теле http:

app.post('/postblurt', routes.api.blurtapi.postBlurt());

Так что все, что мне нужно было сделать, это удалить (), которая выполняет функцию и ожидает возвращаемого значения.

app.post('/postblurt', routes.api.blurtapi.postBlurt);

Простая вещь, которую я упустил из виду: когда маршрут вызывается с параметром, вы должны затем вернуть функцию.

...