2017-05-02 25 views
0

我正在使用NodeJS构建一个RESTful应用程序,并使用NodeJS的http模块(文档here)来处理请求。如何使用NodeJS的http传递时间戳格式参数?

到目前为止,我没有任何处理请求的问题,也没有传递参数,如?name=joe,?category=worker?name=joe&category=worker

但是,我在使用ISO格式过滤日期时遇到问题,例如2017-04-13T18:35:49.924Z。例如,当我使用?timestamp=2017-04-13T18:35:49.924Z时,不会返回任何内容。

我知道有些模块和API可以过滤时间戳,例如this question regarding Django adminthis other question of tableau usage中显示的内容。他们甚至可以处理大于或小于的运营商,如this page所示。

我可以使用http模块过滤时间戳吗?例如,是否有大于和小于运算符,还是我必须找到另一个模块?

我想实现这个是通过时间戳记过滤显示在视图中的记录。

+0

通过“当我使用'时间戳= 2017-04-13T18:35:49.924Z',例如,什么都不会返回。” ,你想提取Node.js中的'timestamp'值吗?你能附上你当前的代码吗? – shaochuancs

+0

有一个函数可以通过以下URL返回日志: 'return $ http.get(“/ log?levelStr = INFO&category = intService”);' 并且没有问题。但是当我尝试使用: 'return $ http.get(“/ log?timestamp = 2017-04-13T18:35:49.924Z”);' 没有任何返回。 – Ernani

+0

你需要检查服务器端的逻辑。看起来'GET/log' API不支持'timestamp'参数。 – shaochuancs

回答

1

http模块与过滤或比较时间戳无关。但是,这是内置于JavaScript。目前还不清楚你想要做什么,但是你可以轻松比较JavaScript日期。 (请注意,你将有你的时间戳转换在JavaScript Date对象)

var x = new Date('2017-04-13T18:35:49.924Z'); 
var y = new Date('2017-05-13T18:35:49.924Z'); 
x > y // false 
x < y // true 
+0

您确定$ http模块与过滤无关吗?因为,正如问题的评论中提到的,我使用return $ http.get(“/ log?levelStr = INFO&category = intService”);'来获取过滤的日志。 我知道我可以使用JavaScript来比较日期,但我更愿意直接通过URL获得过滤结果。 – Ernani

+0

不,“http”模块不会像这样进行任何过滤。目前还不清楚你在做什么,以及从哪里获取这些数据,但是必须提取查询参数并将其传递给某种逻辑(数据库查询等)以获取和/或过滤适当的数据。 –

+0

该URL正用于从数据库中获取数据。在返回$ http.get(“/ log?levelStr = INFO&category = intService”)的情况下,所有具有'levelStr = INFO'和'category = intService'的日志都将从数据库返回。 – Ernani