(!) Issue cannot be reproduced locally.
Azure Function Version ~4
Node Version 14.18.1
创建一个简单的HTTP触发Azure函数并只设置两个简单属性,我们得到以下代码:
module.exports = async function (context, req) {
req.auth = {authField: 'some value'}
req.user = {userField: 'some value'}
context.log(`${JSON.stringify(req,null,2)}`);
context.res = {
body: 'responseMessage'
};
}
记录器打印以下对象:
{
"method": "POST",
"url": "xxx",
"originalUrl": "xxx",
"headers": {
/// ...
},
"query": {},
"params": {},
"body": { "name": "Azure" },
"rawBody": "{\"name\":\"Azure\"}",
"auth": { "authField": "some value" }
}
正如你所看到的,只有auth
被设置,而不是user
.
当我使用Azure Function~3进行测试时,输出如下所示:
{
"method": "POST",
"url": "xxx",
"originalUrl": "xxx",
"headers": {
// ...
},
"query": {},
"params": {},
"body": { "name": "Azure" },
"rawBody": "{\"name\":\"Azure\"}",
"auth": { "authField": "some value" },
"user": { "userField": "some value" }
}
正如你所见,这个字段已经设置好了.
字段user
由我们通过express-jwt(v6.1.0)使用,当没有为requestProperty
提供值时,它是using.
我还不能复制它,但在从Typescript项目传输出来的过程中,我们得到了以下运行时错误:
FailureException: Cannot set property user of [object Object] which has only a getterStack: TypeError: Cannot set property user of [object Object] which has only a getterat Object.run
这一问题始于2022年4月26日.
问题:
- 原因是什么?
- 是否可以快速回滚到运行正常的Azure功能自定义版本?