问题描述
我一直试图查看并解决它,但最终都没有找到相关的解决方案。 需要更多的投入和建议来解决此问题。请检查我的以下代码详细信息。 我正在使用Express GraphQL,猫鼬版本:^ 5.9.25
我正在使用GraphQL做到这一点,
以下是我的查询请求
query {
getTrainsbySetno(details:"233"){
_id
setno
train_no
start_station_code
end_station_code
route_code
train_type
start_on
change_on
halts_at
createdAt
updatedAt
}
}
我的GraphqL查询响应
{
"errors": [
{
"message": "Cast to string failed for value \"{ details: '233' }\" at path \"setno\" for model \"Trains\"","locations": [
{
"line": 55,"column": 3
}
],"path": [
"getTrainsbySetno"
]
}
],"data": {
"getTrainsbySetno": null
}
}
以下是我的解析器
getTrainsbySetno: async (details) => {
try {
const result = await Trains.find({$or:[{setno: details },{train_no: details}]});
console.log(result);
return result.map(res => {
return { ...res._doc,_id: res.id };
});
} catch (err) {
throw err;
}
},
以下是我的架构:
const Schema = mongoose.Schema;
const trainsSchema = new Schema ({
setno : {
type: String,required: true
},train_no : {
type: String,start_station_code : {
type: String,required: false
},end_station_code : {
type: String,route_code : {
type: String,train_type : {
type: String,start_on : {
type: String,change_on : {
type: String,halts_at : {
type: String,required: true
}
},{ timestamps: true }
);
module.exports = mongoose.model('Trains',trainsSchema);
解决方法
在getTrainsbySetno方法中,参数“ details”是一个对象。因此,要获取details obj的值,我们需要将细节替换为“ details.details”。