правильно ли выполнен этот NodeJS API? - Chatfuel не анализирует его должным образом

Chatfuel не анализирует всю строку json, которую возвращает JSON-API. Любая помощь приветствуется.

В то время как JSON, возвращаемый из API, выглядит так (в почтальоне):

{
    "messages": [
        {
            "text": "i think you should study"
        },
        {
            "text": "Mikrobiologi"
        }
    ]
}

бот-мессенджер отправляет только первый текст.

мой код для приложения:

router.get('/ask/:question', function(req, res){
  var output = [];
  var keywords = req.params.question.split(' ');
  var answer = qHandler.search(keywords);
  answer.then(function(books){
    output.push({text: 'i think you should study'})
    for (var i = books.length; i > 0; i--){
      output.push({text: books[i-1].title});
      if (i-1 > 0){
        output.push({text: ' and '});
      }
    };
    res.send({messages: output});
  });
});

Я попытался изменить порядок, добавив больше жестко закодированного текста как до, так и после возвращаемых строк.

В почтальоне вроде все как надо, но чатфул вроде не разбирает текстовые объекты со вставленными названиями книг.


person Michael Rulle    schedule 04.08.2017    source источник


Ответы (1)


Похоже, ваш код правильный. Пожалуйста, убедитесь, что вы получаете параметры со значением книг HTTP request.debug без использования почтальона под answer.then(function(books){

Здесь я могу сделать этот код на чистом javascript

var books = [
    {
        title: 'asdfasdf'
    },{
        title: 'asdfasdf'
    },{
        title: 'asdfasdf'
    },{
        title: 'asdfasdf'
    },{
        title: 'asdfasdf'
    }]

var output = [];
output.push({ text: 'i think you should study' })
for (var i = books.length; i > 0; i--) {
    output.push({ text: books[i - 1].title });
    if (i - 1 > 0) {
        output.push({ text: ' and ' });
    }
};
console.log(output);
person navjotdhanawat    schedule 04.08.2017
comment
Я правильно получаю параметры через ... ask/[parameters] - person Michael Rulle; 04.08.2017
comment
я нажал [ввод], чтобы добавить новую строку в предыдущий пост, и отправил неполный комментарий, вот полная версия: я правильно ввожу параметры через ...ask/[parameters] у меня был console.log(ключевые слова) который напечатал все ключевые слова. И они все там. проблема в том, что обещание, возвращенное из MongoDB, не анализируется chatfuel. Но он печатается в консоли, и я вижу его при запросе как в Chrome, так и в Firefox. жестко закодированный пример, который вы написали, работает отлично. - person Michael Rulle; 04.08.2017