2016-09-28 46 views
2

我創建了一個名爲alpha的表和一個名爲'event'的alpha表。我可以將一行添加到事件表中,並從節點中的事件表中檢索所有行。但是,當我在命令行中嘗試時,我選擇全部時會出現「空白」。可以從節點獲取數據,但不能使用命令行使用postgres

命令行(未看到任何行):

(master U:1 ✗) happy psql alpha 
psql (9.4.4) 
Type "help" for help. 

alpha=# psql \dt 
      List of relations 
Schema | Name | Type | Owner  
--------+-------+-------+------------ 
public | event | table | pgOwner 
(1 row) 

alpha-# select * from event 
alpha-# 

節點代碼(顯示行):

let promise = require('bluebird'); 
let moment = require('moment'); 

let options = { 
    // Initialization Options 
    promiseLib: promise 
}; 

let pgp = require('pg-promise')(options); 
let connectionString = 'postgres://localhost:5432/alpha'; 
let db = pgp(connectionString); 

// add query functions 
function getAllEvents(req, res, next) { 
    db.any('select * from event') 
    .then(function (data) { 
     res.status(200) 
     .json({ 
      status: 'success', 
      data: data, 
      message: 'Retrieved ALL events' 
     }); 
    }) 
    .catch(function (err) { 
     return next(err); 
    }); 
} 

function addEvent(req, res, next) { 
    // let date = moment(new Date()).format('MMMM Do YYYY, h:mm A'); 
    db.none('insert into event(firstName, lastName, eventDate, emotion, answer)' + 
     'values(${firstName}, ${lastName}, ${emotion}, ${emotion}, ${answer})', 
    req.body) 
    .then(function() { 
     res.status(200) 
     .json({ 
      status: 'success', 
      message: 'Inserted one event' 
     }); 
    }) 
    .catch(function (err) { 
     return next(err); 
    }); 
} 


module.exports = { 
    getAllEvents: getAllEvents, 
    addEvent: addEvent, 
}; 

enter image description here

+2

您需要在'psql'中用';'結束語句:'select * from event;' –

+0

@a_horse_with_no_name有效!你可以把它寫成答案,以便我可以將其標記爲正確的? –

回答

5

As documented in the manual

在提示時,用戶可以鍵入SQL命令。通常,當達到命令終止分號時,輸入行被髮送到服務器。行結束不會終止命令。

換句話說,你必須結束與;每個語句,而相比之下,通過驅動程序,只需要;當你與一個請求執行多個查詢(你通常不會執行查詢做它)。

+0

@ vitaly-t:你的加入只是部分正確。例如JDBC驅動程序_does_允許發送多個用';'' –

+0

分隔的語句,已更正。 –

相關問題