环境:普通技术堆栈
嗨,我想向router.get添加一个查询参数,但是我不确定如何定义它。
现在这样工作:
http://test.com/path1/path2/1
router.get('/path1/path2/:userId', (req, res) => {
let route = `GET /path1/path2/${req.params.userId}`;
我只想添加一个搜索查询参数,是这样吗?
http://test.com/path1/path2/1?q=test
如何在router.get中定义它?
答案 0 :(得分:1)
您不需要直接向路由添加查询参数。只需保留/path1/path2/:userId
。
在您的功能内,您可以通过req.query.q
在此处检查是否存在query parameter。
// http://test.com/path1/path2/1?q=test
router.get('/path1/path2/:userId', (req, res) => {
let route = `GET /path1/path2/${req.params.userId}`;
// If http://test.com/path1/path2/1, req.query.q is undefined
console.log(req.params.userId, req.query.q);
});
答案 1 :(得分:1)
您使用req.query
对象获取查询参数。
因此,对于URL http://test.com/path1/path2/1?q=test
,您可以获取如下查询参数:
router.get('/path1/path2/:userId', (req, res) => {
console.log(req.params.userId); // "1"
console.log(req.query.q); // "test"
});
req.query
的文档为here。
答案 2 :(得分:1)
对于此网址@Override
public void onPause() {
super.onPause();
unregisterContentObserver();
}
public void unregisterContentObserver() {
if (mSmsObserver != null) {
try {
getActivity().getContentResolver().unregisterContentObserver(mSmsObserver);
} catch (IllegalStateException ise) {
Timber.w(ise.getMessage());
} finally {
mSmsObserver = null;
}
}
}
@Override
public void onResume() {
super.onResume();
registerContentObserver();
}
private void registerContentObserver() {
mSmsObserver = new SMSObserver(getActivity(), new Handler(),this);
getActivity().getContentResolver().registerContentObserver(Uri.parse("content://sms/inbox"), true, mSmsObserver);//To track an incoming SMS only
}
访问路径参数= http://test.com/path1/path2/1?q=test
。
访问查询参数= req.params.userId
。
从Express文档中了解更多信息