私はNode.js、またはJavaScript全般に不慣れで、現在、postgresqlデータベースにクエリを実行するNode/Expressを使用してhttpサーバーをセットアップしています。ルーティングと複数のコールバックを正しく使用しているかどうかはわかりません。誰かがこれを少し明確にしてくれることを願っています。
現在、次のようになっています。
私のweb.jsで
var routes = require('./routes');
app.get('/get/user/:userid', routes.user, routes.dbquery);
そしてroutes/index.jsで
exports.user = function(request, response, next) {
request.querystring = "select * from users where userid = " + request.param('userid');
next();
};
exports.dbquery = function(request, response) {
pg.connect(process.env.DATABASE_URL, function(err, client, done) {
var query = client.query(request.querystring);
query.on('row', function(row, result) {
result.addRow(row);
});
query.on('end', function(result) {
response.send(JSON.stringify(result.rows));
});
done();
});
};
動作しますが、これはルーティングを設定する正しい方法ですか? 具体的には、リクエスト変数内でクエリ文字列などの変数を渡すだけでいいのでしょうか? または、これに対する他の好ましい解決策はありますか?
私がやりたい理由は、データベースを照会する複数のルートがあるため、dbquery 関数を再利用できるようにしたいからです。