如何将 HTTP REQUEST PUT 与 ODATA 一起使用.PUT 以更新数据库条目



我需要一点指导来尝试使用odata。PUT 以更新中的条目 a DB(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})
    }

}

请参考此链接。在您的代码中,为了更新,您提到了@odata.PUT,而不是使用 @odata.PATCH 并尝试。

你的代码应该是

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

最新更新