大佬教程收集整理的这篇文章主要介绍了如何使用Node.js net.Socket与Postgresql数据库通信就像使用终端一样,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#create database new database;
创建数据库
上面我在终端输入命令“create database newdatabase;”数据库程序响应“CREATE DATABASE”
我试图做同样的事情,但使用节点net.socket.换句话说,我想向我在localhost:5432上运行的POSTGResql服务器发出命令,并通过套接字获得响应.
我的程序成功建立了与POSTGResql服务器的连接并成功将数据刷新到内核,但我从未得到响应(数据监听器永远不会被触发).新数据库也不会被创建.
我还快速了解了wireshark上发生的事情.看起来套接字得到了设置.我看到我的数据以明文形式发送. POSTGResql服务器然后发送ACK FIN ACK.我确认FIN ACK,然后POSTGResql服务器最后一次确认.所以我知道POSTGResql服务器不会发回任何数据.
我的问题是,为什么POSTGResql服务器会忽略我发送它的命令以及为什么POSTGResql服务器不会向我发回任何数据,即使该数据只是一个错误.
const net = require('net'); const BlueBird = require('bluebird'); BlueBird.coroutIne(function* () { var host = "127.0.0.1"; var port = "5432"; var idle_timeout = 10000; var MySocket = new net.socket(); MySocket.setTimeout(idle_timeout); var data = yield new Promise( function resolver(resolve,reject) { MySocket.on('connect',function () { var flushed = MySocket.write("create database newdatabase;","utf8"); console.log("Data flushed to kernel: " + flushed); }); MySocket.on('data',function (data) { console.log(data); resolve(data); }); MySocket.on('error',function (error) { reject(error); }); MySocket.connect(port,host); } ); return data; })() .then(function (data) { console.log(data); return data; }) .catch(function (error) { console.error(error); })
POSTGResql并没有通过端口5432上的套接字谈论相同的基于文本的协议.您可以在documentation中阅读有关POSTGResql协议的更多信息.
使用pg模块连接到带节点的POSTGRes,并在那里进行查询:
var pg = require('pg'); var conString = "POSTGRes://username:password@localhost/database"; pg.connect(conString,function(err,client,donE) { if(err) { return console.error('error fetching client from pool',err); } client.query('create database newdatabase',result) { console.log('CREATE DATABASE'); }); }
以上是大佬教程为你收集整理的如何使用Node.js net.Socket与Postgresql数据库通信就像使用终端一样全部内容,希望文章能够帮你解决如何使用Node.js net.Socket与Postgresql数据库通信就像使用终端一样所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。