You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js的app.get()中传递两个参数实现MySQL日期区间查询

实现Express接口接收两个日期参数的两种常用方案

方案1:路由参数形式(参数写在路径里)

直接在路由路径中定义两个占位符即可,代码示例:

app.get('/api/v1/trans_details/:date_from/:date_to', function(req, res) {
    // 从路由参数中取出两个日期
    const dateFrom = req.params.date_from
    const dateTo = req.params.date_to

    // 后续业务逻辑:校验日期格式、拼接SQL查询
    // 注意使用参数化查询避免SQL注入,示例MySQL查询写法:
    // const sql = 'SELECT * FROM trans_details WHERE create_time BETWEEN ? AND ?'
    // db.query(sql, [dateFrom, dateTo], (err, result) => {
    //   // 处理返回结果
    // })
})

调用方式示例:GET /api/v1/trans_details/2024-01-01/2024-01-31


方案2:查询参数形式(更推荐筛选类场景使用)

路由路径无需提前定义参数占位符,参数拼接在请求地址的?后面,代码示例:

app.get('/api/v1/trans_details', function(req, res) {
    // 从查询参数中取出两个日期
    const dateFrom = req.query.date_from
    const dateTo = req.query.date_to

    // 建议加非空校验
    if (!dateFrom || !dateTo) {
        return res.status(400).json({msg: '请传入起始日期和结束日期'})
    }

    // 后续业务逻辑同方案1
})

调用方式示例:GET /api/v1/trans_details?date_from=2024-01-01&date_to=2024-01-31

这种方案灵活性更高,后续需要新增其他筛选条件时不需要修改路由定义,更符合接口设计规范。


注意事项

  • 传入的日期建议统一格式(比如YYYY-MM-DD),拿到参数后先做格式合法性校验
  • 操作MySQL时必须使用参数化查询,不要直接拼接字符串到SQL语句中,避免SQL注入风险

内容的提问来源于stack exchange,提问作者Revan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:45:07