我目前正在与快递node.js项目,以制作网页应用程序。
因为我刚开始表达系统和学习..。我需要帮助!
我想用查询字符串设置路由,并检查查询字符串是否有效发送。
例如,查询字符串如下(有年份,月份)
https://localhost:3000/?year=2021&month=8在这种情况下,我想比较年/月的日期值是在今天的时间之前。如果今天是2021-08-31,那么年份应该等于或小于2021年,月份应按年值进行检查。
如果没有提供年份和月份查询,那么我希望将其添加并路由到next。
我想做几个路线页如下所示。下面是app.js文件。
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之前,应该先检查查询字符串。我怎么能这么简单?
发布于 2021-08-31 07:27:01
您可以通过下面的参考代码来实现它。
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发布于 2021-08-31 07:51:55
您可以像这样访问查询参数
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
}https://stackoverflow.com/questions/68993886
复制相似问题