Azure 函数响应状态代码始终为 200

bit*_*key 0 azure node.js azure-functions

我有一个函数应该根据一些内部逻辑返回错误状态 500/400。出于某种原因,无论我返回什么,Azure 函数都会不断返回 HTTP 状态 200。

这是一个示例

    if (err) { 
        console.error('some error :', err);                           
        context.res = { status: 400, body: err };
    } else {
        context.res = processRequest(context, req);
    }

    context.done();
Run Code Online (Sandbox Code Playgroud)

它返回状态 200 OK

在此处输入图片说明

下面是我的函数绑定

{
  "bindings": [
{
  "authLevel": "function",
  "type": "httpTrigger",
  "direction": "in",
  "name": "req"
},
{
  "type": "http",
  "direction": "out",
  "name": "res"
}  
],  "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

bit*_*key 5

啊! 最后不得不将 IsRaw 属性设置为 true

在此处输入图片说明

微软文档

            context.res = {
            headers: {
                'Content-Type': 'application/json'
            },
            status: 400,
            body: {
                err
            },
            isRaw: true,
            };
Run Code Online (Sandbox Code Playgroud)