node.js - 如何使用带有 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})
}
}
解决方案
请参考此链接。在您的代码中,对于更新,您已经提到@odata.PUT
了,而不是使用@odata.PATCH
和尝试。
你的代码应该是
@odata.PATCH
async update(@odata.query params:ODataQuery){
console.log(params);
}
推荐阅读
- c# - Unity - LineRenderer 不会出现在构建中(2D)
- elasticsearch - 无法在 EC2 机器上形成 Elasticsearch 7 集群
- r - RSQLite:如何增加列数和参数?
- python - 如何在按住键时暂停 VideoStream?Python OpenCV
- c# - The notification isn't showing in the telephone after i press the button
- android - 如何将动态值传递给渐变xml
- rust - 货物构建未在 wasm 项目上生成 pkg 目录
- javascript - 如何在 recharts reactJS 上的 datakey 中操作 DateTime
- aws-lambda - Lambda - 将源 IP 传递给自定义授权方
- azure-devops - 在 Azure Devops 中复制发布管道所有阶段的更改