我正在获取项目的ID
和当前的status
,它可以工作,但是我想检查一下它是否处于活动状态,如果active: false
则返回->状态404,消息:状态无效。
我的问题是我似乎无法从请求中获得主动返回,这是我的新知识,所以也许我理解错误或犯了一个简单的错误,在此先感谢您的帮助。
文档:
{
"_id" : ObjectId("5b3f7b2efe8d1f3ef8096dfd"),
"name" : "Brand Name",
"active" : false,
"__v" : 0
}
代码:
// RETURN ACTIVE STATUS OF SINGLE BRAND FROM DATABASE
router.get('/:id/ActiveStatus', (req, res) => {
var id = req.params.id;
//MY ATTEMPTED TO GET THE ACTIVE STATUS = undefined
var status = req.query.active;
console.log(status);
if(status !== true){
return res.status(404).send({message: 'Status not found.'});
}
if(!ObjectID.isValid(id)){
return res.status(404).send({message: 'Invalid Object ID provided.'})
}
Brand.findById(id, {active: 1}).then((brand) => {
if(!brand){
return res.status(404).send({message: 'Error, status not active.'})
}
res.send({brand});
}).catch((e) => {
return res.status(404).send(e);
});
});
答案 0 :(得分:1)
//MY ATTEMPTED TO GET THE ACTIVE STATUS = undefined
var status = req.query.active;
如果要获取状态参数,则根据您的代码,客户端将在调用api时提供它。因此,客户端api调用应为-
https://<url>/<id>/ActiveStatus?active="some value"
之后,您可以像在代码中一样进行访问。
var status = req.query.active;
如果要从请求参数中获取路由,可以这样定义路由
// RETURN ACTIVE STATUS OF SINGLE BRAND FROM DATABASE
router.get('/:id/ActiveStatus/:active', (req, res) => {
//your code
});
在这种情况下,您可以像使用id一样通过request参数访问它
var status = req.params.active;