如何使用简单的 HttpGET-CRUD-NodeJS 示例?

How to use the simple HttpGET-CRUD-NodeJS example?

假设我只使用生成的默认模板:

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
}

怎样才能调用函数成功?

门户 "Run" 按钮通过向您的功能发送 POST 请求来工作。但是,该模板指定 methods: [ "get" ] 限制函数仅支持 GET 请求(因此出现 405 "Method not allowed" 错误)。

您可以使用 Postman 之类的客户端或任何您喜欢的客户端来发送 GET 请求,该函数将 运行 成功。或者,您也可以通过将 "post" 添加到方法数组 (methods: [ "get", "post" ]) 来允许该函数接受 POST 请求,并且您可以从门户调用它。

我同意这有点令人困惑。问题是 Functions 门户不是一个完整的 HTTP 客户端,因此它不允许您指定 http 方法 headers 等。我们在我们的 repo 中有一个 open issue 来改进它.我们将在门户中构建功能齐全的 HTTP 客户端的程度尚待确定,因此目前您最好的选择是使用外部客户端来处理除简单情况外的所有情况。