Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在nodejs中使用regex和重定向创建路由_Javascript_Node.js_Regex_Express - Fatal编程技术网

Javascript 如何在nodejs中使用regex和重定向创建路由

Javascript 如何在nodejs中使用regex和重定向创建路由,javascript,node.js,regex,express,Javascript,Node.js,Regex,Express,我想知道如何使用nodejs express使用带有参数的路由和重定向url 如果url是xyz/?s=test,则重定向到indexRouter 如果url是xyz/,则edirect to indexRouter 但是正则表达式代码不起作用,被卡住了,或者其他任何替代方案 包含部分代码 //app.js var app = express(); app.use('/', indexRouter); //if the url is xyz/?s=test redirect to indexR

我想知道如何使用nodejs express使用带有参数的路由和重定向url

如果url是
xyz/?s=test
,则重定向到indexRouter 如果url是
xyz/
,则edirect to indexRouter

但是正则表达式代码不起作用,被卡住了,或者其他任何替代方案

包含部分代码

//app.js
var app = express();
app.use('/', indexRouter);

//if the url is xyz/?s=test redirect to indexRouter
app.get(/^\/?(.*)/, (req, res)=>{
  res.redirect("/"); 
});

//index.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res) {
  if(JSON.stringify(req.query)==='{}'){
    res.redirect("en")
  }
  else if(Object.keys(req.query).length > 0){
     res.redirect("en"+req.Url.query)
  }
  else{
    res.redirect("zh")
  }
})
}

查询字符串不被视为路由的一部分,URL的组件是

请求参数
/:某些参数/
或正则表达式可以执行
/[\\w\\w]+/

//app.js
var app = express();
app.use('/', indexRouter);

//if the url is xyz/?s=test redirect to indexRouter
app.get('/:some_param/', (req, res)=>{
  res.redirect('/');
});
app.get('/[\\w\\W]+/', (req, res)=>{
  res.redirect('/');
});