Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

node.jsとpostgresで文字返すだけのHTTPサーバを立ててみる

今回の記事では、node.jsとpostgresで文字返すだけのHTTPサーバを立ててみようと思います。
普段はMySQL勢だったりするのですが……
Postgresは

と、前々から気にはなっていたのでお勉強がてら採用ということになりました。

前提環境

...なんか、最新でないような気がしますが無視します。

実際のところ

postgres

あらかじめ、

$ pg_ctl -D /usr/local/var/postgres -l ~/postgres.log start
$ createdb sampledb
$ psql sampledb

てな感じで、postgresを走らせsampledbを作成、ログインしておきます。
その後、

CREATE TABLE user1 (name TEXT, val INTEGER);
insert into user1 values ('shuzo', 1);
insert into user1 values ('vivit', 2);

などといった感じで模擬データを突っ込みます。

node.js

データの準備が終わったら作業ディレクトリで

$ npm install pg

と、postgresのライブラリを突っ込んでおきます。
あとは、本体を以下のように記述して

var pg = require('pg');

var conString = "postgres://USERNAME:PASSWORD@localhost/SAMPLEDB";
var resultName = "";
var client = new pg.Client(conString);
client.connect(function(err) {
    if(err) {
        return console.error('could not connect to postgres', err);
    }
    client.query('select name from user1;', function(err, result) {
        if(err) {
            return console.error('error running query', err);
        }
        console.log(result.rows[0].name);
        console.log(result.rows[1].name);
        resultName = result.rows[0].name;
        client.end();

    });
});

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end(resultName);
}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

コマンドを叩き、http://127.0.0.1:1337/を見るだけ。

$ node sample.js

案外、楽にできました。