将javascript变量从客户端传输到服务器

时间:2011-07-25 18:35:47

标签: javascript node.js

我正在编写一个奇怪的脚本,包括将变量从客户端传输到nodejs服务器。
因此,如果有一个日期变量,我该如何传输它并在服务器上使用相同的变量?
有没有办法序列化对象并在服务器端以它们保持相同类型(日期,函数,变量,字符串,对象......)的方式检索它们?

谢谢

4 个答案:

答案 0 :(得分:2)

您可以通过将日期转换为可以通过JSON发送的号码来序列化日期。

new Date(+new Date)

完全有效。

中的前缀+
+new Date

将新创建的日期转换为数字,然后

new Date(myNumber)

从数字中重新构建日期。

答案 1 :(得分:1)

Now.js可以抽象所有序列化,反序列化..它在node.js服务器和浏览器客户端之间提供共享命名空间:

http://nowjs.com/

答案 2 :(得分:1)

除了nowjs,您可以查看DNode。我一直在看这两个项目,但还没有涉足它们。但是,我感觉DNode它在node.js社区中建立了更多的牵引力,我一直听到赞美。

https://github.com/substack/dnode http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-Method-Invocation-for-Node-js-and-the-Browser

时区在我的应用程序中非常重要,所以我发现将日期序列化为ISO8601格式的日期字符串效果最佳。 @ Mike的解决方案非常棒,如果您不关心时区,或者可以假设所有日期都是UTC。有很多javascript库可以帮助序列化/反序列化ISO8601。

答案 3 :(得分:0)

正如在我之前发布的那样,将Date Object序列化为字符串文字,以毫秒为单位的值或格式化的Date字符串。

使用POST请求在请求正文中传递Date字符串,或者通过查询参数传递字符串的GET请求将其传递到服务器。在那里,您可以使用Date构造函数反序列化字符串。