Node JS - DB调用异步?

时间:2016-09-26 10:09:16

标签: javascript node.js npm

我对节点js很新,我使用以下链接将节点js与postgres db连接:

How to make connection to Postgres via Node.js

在节点控制台中运行时,以下代码从DB(Postgres)中获取一些结果

var query_str = "SELECT name FROM city" ;
var pg = require('pg');
var conString = "postgres://postgres:postgres@localhost:5432/cfg";
var client = new pg.Client(conString);
client.connect();
var query = client.query(query_str);
console.log(query);

但是当我把上面的代码放在像这样的函数中并进行函数调用时

 function getname()
 {
   var query_str = "SELECT name FROM city" ;
   var pg = require('pg');
   var conString = "postgres://postgres:postgres@localhost:5432/cfg";
   var client = new pg.Client(conString);
   client.connect();
   var query = client.query(query_str);
   console.log(query);
   return query;
 }

它返回一个空对象。是因为代码是异步的吗?如果是这样,我该如何解决这个问题。

任何人都可以帮我解决这个问题。或者如何进一步发展。感谢。

1 个答案:

答案 0 :(得分:1)

export class ConfirmModalComponent implements AfterViewInit { @Input() id; public ngAfterViewInit() { $('#first-modal-' + this.id, '#second-modal-' + this.id) .modal({ allowMultiple: false, closable: false, selector: { approve: ".actions .approve, .actions .ok", deny: ".actions .deny" } }); // show first of linked modals $('#first-modal-' + this.id) .modal('attach events', '#deleteButton-' + this.id); // // attach events to buttons $('#second-modal-' + this.id) .modal('attach events', '#first-modal-' + this.id + ' .button.approve'); } 是异步的,您的函数应该是client.query函数,或者它应该返回callback

Promise