Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 更改日期-postgreSQL和WebSocket_Node.js_Postgresql_Websocket - Fatal编程技术网

Node.js 更改日期-postgreSQL和WebSocket

Node.js 更改日期-postgreSQL和WebSocket,node.js,postgresql,websocket,Node.js,Postgresql,Websocket,我正在使用WebSocket、nodejs v0.10.12和PostgreSQL 9.1以及PostGIS 2.0。 现在,在服务器端的WebSocket上,为了收集文本数据并将其发送到客户端,我使用node的pg插件执行查询。 我有点像 var query = client.query('SELECT p_name,p_date FROM pins WHERE p_id ='+ja) //send them and render in client as html query.on("ro

我正在使用WebSocket、nodejs v0.10.12和PostgreSQL 9.1以及PostGIS 2.0。 现在,在服务器端的WebSocket上,为了收集文本数据并将其发送到客户端,我使用node的pg插件执行查询。 我有点像

var query = client.query('SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)
//send them and render in client as html
query.on("row", function (row, result) {result.addRow(row);});

query.on("end", function (result) {
    for (var i=0; i<result.rows.length; i++){
           connection.send(
                        'Name</br>'
                        +result.rows[i].p_name+
                        '</br>Date</br>'
                        +result.rows[i].p_date+
                        '</br>'
                        }

      client.end();
 });
这显然是PHP,我使用Javascript是因为我使用WebSocket

我唯一能想到的就是像这样编辑上面的查询

var query = client.query('SET datestyle = "SQL, DMY"; SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)
我没有收到任何错误,但是在客户端上,日期呈现为
null

我怎样才能解决这个问题

谢谢

好的。从哪里开始

这:

不是生成查询的正确方法。使用参数化查询并保护自己不受SQL注入的影响

SET datestyle=“SQL,DMY”

这显然是PHP,我使用Javascript是因为我使用WebSocket

什么?我在想这句话的一些建设性的东西,但我能想到的最好的是“什么?”。上面提到的是PHP,这一点并不明显,因为它不是。将其发送到数据库的事实应该会提示您它是SQL。另外,您没有使用javascript,因为您使用的是WebSocket。您使用javascript是因为您使用的是javascript—WebSocket与此处的任何内容都无关

我唯一能想到的就是

不包括查看手册

转到PostgreSQL网站,单击文档和手册,然后在目录页上单击“函数和运算符”,然后单击“数据类型格式化函数”。以下是您的链接:

您会注意到,PostgreSQL开发人员不仅编写了广泛而详细的手册,而且他们还保持了多个版本的联机状态,从而可以方便地来回切换以查看所做的更改

本页有一个完整的章节,介绍如何以不同的方式格式化日期时间,并对每种效果进行清晰的描述。我没有使用文档搜索或任何类似的聪明方法找到这一点——只是每个页面上的明显链接

如果您进行搜索,您将在datestyle参数上找到大量信息,进一步挖掘将显示您可以为每个会话设置它,或者将其设置为给定用户或数据库的默认值

最后,无论如何,不要这样做。返回ISO标准日期格式,如@mu said(YYYY-MM-DD等)。并在javascript客户端代码中格式化它们


哦-虽然我不是专家,但我不确定

是否是有效的HTML、XHTML或XML。您的意思可能是

除了应用程序的边缘(即最终显示)之外,您没有在任何地方使用ISO 8601格式有什么原因吗?@muistooshort如果我设置
var query=client.query('set datestyle=“ISO,DMY”;从p_id='+ja的管脚中选择p_name,p_date)
2002年2月2日星期六02:00:00 GMT+0200(ΧεμερνήώραGTB)
,而不是像DD/MM/yyyyy那样编辑查询,以包含
ja
var,该变量会动态变化,因为它代表一个id整数,参考用户在地图上单击的点。AFAIK和IMHO我不必使用参数化查询,因为我不能通过简单的鼠标点击获得SQL注入。好的,
SET datastyle…
它的SQL,反正不是Javascript。此外,由于WebSocket和node,我使用Javascript。我提到我正在使用node。我看到了那个链接。我尝试了类似“for(var I=0;i1)”的方法。当然,您可以通过web界面获得SQL注入。不要依赖提供的数据是好的-使用参数化查询。2.to_char()是一个SQL函数-你可以通过在postgresql.org网站上看到它来判断。3.我的答案不会让你看起来很懒-这是你的问题。底线是,我不能使用
将日期更改为_char
设置日期样式
,因为,嗯,我在nodejs上使用pg模块,而不是纯PHP/SQL。有解决方法吗?你不会有o恐怕要学习一些关于SQL和javascript的知识。我不确定我能不能把我的解释说得更清楚。你可以同时使用这两种语言。
var query = client.query('SET datestyle = "SQL, DMY"; SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)
var query = client.query('SELECT p_name,p_date FROM  pins WHERE p_id ='+ja)