首页 > 解决方案 > 如何使用带有 odata.PUT 的 HTTP REQUEST PUT 来更新数据库条目?

问题描述

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


}

标签: node.jsmongodbtypescriptodata

解决方案


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

你的代码应该是

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

    }

推荐阅读