我想仅在方法==添加时向API服务器发送数据属性,如果它= =删除,我不想发送我的数据。< / p>
我有
var body =
{
id: 1,
method: method,
params: [
{
data: {
"key1" : "value1",
"key2" : "value2",
"key3" : "value3"
},
url: `/url/anything`
}
],
session: session,
verbose: 1
};
我试过
if(method == 'delete') {
_.pick(body.params[0], ['data']);
}
我也试过
if(method == 'delete') {
_.pick(body.params[0],'data');
}
出于某种原因,我仍然看到我仍在发送data
。
如何继续进行调试?
我现在对任何建议持开放态度。
任何提示/建议/帮助都将非常感谢!
答案 0 :(得分:1)
如果您查看lodash pick documentation,您会看到它不会更改源对象,而是从源对象属性创建一个新对象并返回新对象,如果要删除来自源对象的数据属性,您可以使用unset method from lodash从对象或一组道具中删除属性, 您也可以使用delete operator
答案 1 :(得分:1)
使用import mongoose from 'mongoose';
const Schema = mongoose.Schema;
// Post comments schema
const CommentSchema = new Schema({
body: { type: String },
addedBy: { type: Schema.Types.ObjectId, ref: 'User' },
});
// Main Post schema
const PostSchema = new Schema({
image: { data: Buffer, contentType: String },
caption: { type: String },
comments: [CommentSchema],
uploadedBy: { type: Schema.Types.ObjectId, ref: 'User' },
likedBy: [{ type: Schema.Types.ObjectId, ref: 'User' }],
bookmarkedBy: [{ type: Schema.Types.ObjectId, ref: 'User' }],
},
{
timestamps: true,
},
);
const Post = mongoose.model('Post', PostSchema);
export default Post;
:
_.assign
答案 2 :(得分:0)
您可能需要这样做。
if(method === 'delete') {
body.params[0].data = undefined;
}
在这种情况下,我们会通过分配data
删除undefined
的所有内容。