我需要一点指导来尝试使用odata。PUT 以更新中的条目 a DB(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);
}