我需要一些指导来尝试使用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})
}
}
答案 0 :(得分:2)
请参阅this link。
为了更新,您在代码中提到了@odata.PUT
,而不是使用@odata.PATCH
并尝试。
您的代码应为
@odata.PATCH
async update(@odata.query params:ODataQuery){
console.log(params);
}