如何与odata.PUT一起使用HTTP REQUEST PUT更新数据库条目?

时间:2019-06-19 10:53:20

标签: node.js mongodb typescript odata

我需要一些指导来尝试使用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})
    }


}

1 个答案:

答案 0 :(得分:2)

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

您的代码应为

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

    }