我是 Node.js 的新手,甚至是一般的 JavaScript,我目前正在使用 Node/Express 设置一个 http-server,它应该查询一个 postgresql 数据库。我不确定我使用的路由和多个回调是否正确,希望有人能澄清一下。
现在,它看起来像这样:
在我的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 函数,因为我将有多个路由来查询数据库。