首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速查询字符串检查并发送给客户端

快速查询字符串检查并发送给客户端
EN

Stack Overflow用户
提问于 2021-08-31 06:33:07
回答 2查看 88关注 0票数 0

我目前正在与快递node.js项目,以制作网页应用程序。

因为我刚开始表达系统和学习..。我需要帮助!

我想用查询字符串设置路由,并检查查询字符串是否有效发送。

例如,查询字符串如下(有年份,月份)

代码语言:javascript
复制
https://localhost:3000/?year=2021&month=8

在这种情况下,我想比较年/月的日期值是在今天的时间之前。如果今天是2021-08-31,那么年份应该等于或小于2021年,月份应按年值进行检查。

如果没有提供年份和月份查询,那么我希望将其添加并路由到next。

我想做几个路线页如下所示。下面是app.js文件。

代码语言:javascript
复制
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var aRouter = require('./routes/a');
var bRouter = require('./routes/b');
var cRouter = require('./routes/c');
var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', aRouter);
app.use('/b', bRouter);
app.use('/c', cRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

使用上面的代码,用户可以被路由到a,b,c路由器。在路由到任何url之前,应该先检查查询字符串。我怎么能这么简单?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-31 07:27:01

您可以通过下面的参考代码来实现它。

代码语言:javascript
复制
const router = require("express").Router()

router.get("/", (req, res, next) => {

    if (req.query.year && req.query.month){
        // your code for year and month verification
        return res.sendStatus(200)
    }
    return next()
})


module.exports = router
票数 0
EN

Stack Overflow用户

发布于 2021-08-31 07:51:55

您可以像这样访问查询参数

代码语言:javascript
复制
const year = Number(req.query.year);
const month = Number(req.query.month);

if (!isNaN(year) && !isNaN(month)) {
    // check dates and possibly call "next" function to skip
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68993886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档