node.js - 如何将 HTTP REQUEST PUT 与 odata.PUT 结合使用来更新数据库条目?

标签 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})
    }


}

最佳答案

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

你的代码应该是

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

    }

关于node.js - 如何将 HTTP REQUEST PUT 与 odata.PUT 结合使用来更新数据库条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56665990/

相关文章:

angular - 如何将 Angular 表单验证与 ngFor 绑定(bind)

node.js - 关于自定义 node.js CLI 工具配置文件的建议/最佳实践 : location & naming?

node.js - 将 API 的响应作为 Node 服务器的响应传递会引发异常

node.js - $map mongodb中带有索引的$concat字段?

node.js - Mongoose 查询未返回更新信息 { new : true } param

javascript - 在 typescript 中使用@waves/waves-crypto 在waves 区 block 链上创建加密地址时出错

node.js - Gulp.src 不考虑基目录

node.js - "Request timeout"H12 Heroku 错误绑定(bind)访问 MongoDB Atlas

java - 无法让 JUnit 使用我的 @Autowired 存储库和 MongoTemplate

node.js - 运行命令 node dist/index.js 会出现与 src 文件夹中的 Typescript 文件相关的错误