我是新來的Node.js,甚至一般的JavaScript,我目前正在使用Node/Express設置一個http服務器,它應該查詢postgresql數據庫。我不確定我是否正在使用路由和多個回調,並希望有人能澄清這一點。使用多個回調在Express/Node.js中路由
現在,它看起來像這樣:
在我web.js
var routes = require('./routes');
app.get('/get/user/:userid', routes.user, routes.dbquery);
和路線/ 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函數,因爲我將有多個將查詢數據庫的路由。
看起來沒問題,雖然我會使用佔位符而不是字符串連接來構建查詢。 – robertklep 2013-03-13 10:56:19
你爲什麼用中間件生成查詢?爲什麼不直接在dbquery中做任何具體的原因呢? – 2013-03-13 11:06:45
@robertklep好酷謝謝你! – erikhaq 2013-03-13 11:11:33