首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-express如何在URL查询字符串中传递日期参数以及如何解析该参数

node-express如何在URL查询字符串中传递日期参数以及如何解析该参数
EN

Stack Overflow用户
提问于 2017-10-25 15:45:53
回答 4查看 16.5K关注 0票数 3

我有一个应用程序建立在角度2,在发送http请求从oracle数据库中获取数据的服务,使用node-oracle DB和express框架。我已经使用express构建了rest api,现在我需要在请求参数中传递日期,express必须解析该参数并发送响应。如何在查询参数中传递日期,以及如何在快速rest api中解析该日期。

EN

回答 4

Stack Overflow用户

发布于 2019-02-14 22:24:21

使用iso格式'yyyy-mm-dd‘传递日期

代码语言:javascript
复制
const date = new Date();
http.get(`url/test?date=${date.toISOString()}`

在快递方面

代码语言:javascript
复制
app.get(/test', async function(req, res) {

const dateInServer = newDate(req.query.date);

});

票数 7
EN

Stack Overflow用户

发布于 2017-10-25 16:10:55

Date是仅有的几种javascript类型之一,当您对对象进行Stringify时,它不会被存储。

你可以访问Issues with Date() when using JSON.stringify() and JSON.parse()了解更多信息。

您可以在此处选择以下任一选项:

在输入时拆分日期

如果你只想找一个日期,你可以把它分成3个参数

代码语言:javascript
复制
var valueToSend = {
  date: {
    day: date.getDate(),
    month: date.getMonth(),
    year: date.getYear()
}

然后在快递方面

代码语言:javascript
复制
new Date(req.body.year, req.body.month, req.body.date)

这种方法的优点是很容易验证,并且您只需要发送所需的信息。缺点是它需要更多的代码

在express端使用正则表达式

您可以制作一个中间件来测试日期格式的字符串,并使用JSON.parse恢复函数作为第二个参数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse将其转换为日期

例如:

代码语言:javascript
复制
 module.exports = (req, res, next) => {
     for (var bodyKey in req.body) {
         if (req.body.hasOwnProperty(bodyKey)) {
             req.body[bodyKey] = JSON.parse(req.body[bodyKey],dateTimeReviver);
         }
     }
     next();
 };

function dateTimeReviver(key, value) {
  var a;
    if (typeof value === 'string') {
        a = /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z/.exec(value);
        if (a) {
            return new Date(a[0]);
        }
    }
    return value;
}
票数 2
EN

Stack Overflow用户

发布于 2017-10-25 21:50:51

我写了一个series on dates,介绍了它们在客户端、中间层和Oracle数据库之间移动时发生的情况。这是part that touches on node-oracledb。你可能会发现其中的一些信息很有用。

Peter的答案已经涵盖了解析来自客户端的ISO8601字符串的日期。我要补充的是,如果要将日期插入到date或TIMESTAMP列中,您需要在连接到Oracle时确保正确的时区。The doc也涵盖了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46926743

复制
相关文章

相似问题

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