2016-10-02 1 views
1

Учитывая я просто использовать шаблон по умолчанию, который был создан:Как использовать простой пример HttpGET-CRUD-NodeJS?

module.exports = function (context, req, intable) { 
    context.log("Retrieved records:", intable); 
    context.res = { 
     status: 200, 
     body: intable 
    }; 
    context.done(); 
}; 

и следующий файл JSon:

{ 
    "bindings": [ 
    { 
     "type": "httpTrigger", 
     "direction": "in", 
     "name": "req", 
     "methods": [ 
     "get" 
     ], 
     "authLevel": "function" 
    }, 
    { 
     "type": "http", 
     "direction": "out", 
     "name": "res" 
    }, 
    { 
     "type": "table", 
     "name": "inTable", 
     "tableName": "person", 
     "connection": "serverlessexamplestorage_STORAGE", 
     "direction": "in", 
     "take": "100" 
    } 
    ], 
    "disabled": false 
} 

Что делать для того, чтобы вызвать функцию успешно?

enter image description here

ответ

3

кнопка Портал «Выполнить» работает путем отправки запроса POST к вашей функции. Тем не менее, этот шаблон указывает methods: [ "get" ], ограничивая функцию только поддержкой запросов GET (следовательно, ошибка 405 «Метод не разрешен»).

Вы можете использовать клиента, например Postman, или как ваш любимый клиент должен отправить запрос GET, и функция будет работать успешно. В качестве альтернативы вы также можете позволить функции принимать POST-запросы, добавив «post» в массив методов (methods: [ "get", "post" ]), и вы сможете вызвать его с портала.

Я согласен, что это несколько сбивает с толку. Проблема заключается в том, что портал Functions не является полнофункциональным HTTP-клиентом, поэтому он не позволяет вам указывать метод http, заголовки и т. Д. В нашем репо есть open issue, чтобы улучшить это. В какой степени мы создадим полнофункциональный HTTP-клиент на портале, это TBD, так что теперь ваш лучший вариант - использовать внешний клиент для всех, кроме простых случаев.

+0

Это имеет смысл. Я тоже использовал Postman, но я забыл изменить раскрывающийся список, чтобы GET, когда я запускаю пример HttpPost с помощью POST. Это отдельный вопрос, есть ли способ динамически модифицировать конфигурационный файл 'json', чтобы сказать, что для' 'inTable' заселялось изменение' TableName'? –

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

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