javascript - 节点 api GET 状态请求
问题描述
我正在获取该项目的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);
});
});
解决方案
//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 所做的那样
var status = req.params.active;
推荐阅读
- argo-workflows - 如何从 API 请求触发 argo 工作流?
- graphql - Apollo 服务器超时问题
- c - klish/clish:使用内部 VAR 设置启动超时标签
- mongoexport - mongoexport 排序超出内存 csv
- sql - pgsql:过滤列以获取最新值
- docker - 在 amd64/python docker 镜像中安装 XAMPP 服务器
- windows - Windows:无法打开嵌套文件夹中创建的文件(使用 python 脚本)
- tensorflow - ValueError:形状 (None, None) 和 (None, 28, 28, 12) 不兼容
- reactjs - 在电子应用程序中使用 contextBridge/preload 时如何更新反应状态
- linux - 当我尝试运行 sudo 命令时,为什么 Ubuntu 会出现以下错误?