如何使用带有 odata.PUT 的 HTTP REQUEST PUT 来更新数据库条目?

How to use HTTP REQUEST PUT with odata.PUT to update database entries?

我需要一些指导来尝试使用 odata.PUT 更新条目 数据库(mongoDB)。我在正确调用 @odata.PUT 以能够更新之前使用 @odata.POST 创建时遇到困难。

我尝试使用@odata.query 从 HTTP 请求访问查询参数,但无济于事。

import { ODataController, Edm, odata, getQueryParameter} from "odata-v4-server";
import { User } from "../model/User";
import "reflect-metadata";
import { ObjectID } from "mongodb";
import connection from "../connection";

@odata.type(User)
@Edm.EntitySet("User")
export class UsersController extends ODataController {
@odata.GET
    async findOne(@odata.key key: string): Promise<User> {
        const connect = await connection();
        return connect.getRepository(User).findOne({_id:key});
    }
    @odata.POST
    async create(){
        const connect = await connection();
        var key = new ObjectID();
        connect.getRepository(User).save({_id: key.toString()});
    }
    @odata.PUT
    async insert(@odata.query params){
        console.log(params);

    }
    @odata.DELETE
    async remove(@odata.key key:string) {
        const connect = await connection();
        await connect.getRepository(User).delete({username:key})
    }


}

请参考this link。 在您的代码中,对于更新,您提到了 @odata.PUT,而不是使用 @odata.PATCH 并尝试。

您的代码应该是

@odata.PATCH
    async update(@odata.query params:ODataQuery){
        console.log(params);

    }