回送4中,当我发布单个值时,出现一个奇怪的问题:
{
email: "sit@leoVivamusnibh.net",
password: "430975896"
}
昂首阔步,没有问题报告,但是当我发布一系列值时:
[{
email: "metus.facilisis.lorem@sitamet.org",
password: "168978823"
},
{
email: "fringilla@enim.org",
password: "933013104"
}]
该值已发布到数据库,但出现此错误:
{
"error": {
"statusCode": 500,
"message": "Internal Server Error"
}
}
并在控制台中显示以下行:
POST中未处理的错误/用户:500 TypeError:model.toObject不是 功能 在UserRepository.toEntity(D:\ apps \ test \ node_modules @ loopback \ repository \ src \ repositories \ legacy-juggler-bridge.ts:471:39) 在UserRepository.create(D:\ apps \ test \ node_modules @ loopback \ repository \ src \ repositories \ legacy-juggler-bridge.ts:338:17)
用户模型
@model({ settings: {} })
export class User extends Entity {
@property({
type: 'number',
id: true,
generated: true
})
id: number;
@property({
type: 'string'
})
email: string;
@property({
type: 'string'
})
password: string;
constructor(data?: Partial<User>) {
super(data);
}
}
用户控制器:
async create(
@requestBody({
content: {
'application/json': {
schema: getModelSchemaRef(User),
},
},
})
user: Omit<User, 'id'>,
): Promise<User> {
return this.userRepository.create(user,
//{ exclude: ['id'] }
);
}
答案 0 :(得分:1)
首先,在LoopBack 4中,POST
方法不接受要创建的模型实例数组,它仅适用于单个模型。
话虽如此,当请求包含对象数组时,LoopBack不应响应500错误。我希望得到422 Unprocessable Entity
的答复。
请问您能填个错误吗? https://github.com/strongloop/loopback-next/issues/new/choose
答案 1 :(得分:1)
您在请求正文中请求的数组就可以了。
问题是,如果要在数据库中创建这些用户个人资料 您将必须执行以下操作:
async create(
@requestBody({
content: {
'application/json': {
schema: getModelSchemaRef(User),
},
},
})
userList: User[],
): Promise<User> {
return await Promise.all(
userList.forEach(user => {
return await this.userRepository.create(user);
))
}
希望对您有帮助或有任何疑问或建议,请给我写信。 谢谢