我试图用多个sql语句制作简单的仪表板。我在这里浏览了很多主题,但仍然无法将sql响应传递给网页。(Multiple sql queries in nodejs类似,但如果使用更多语句,我希望避免使用非常长的代码)
当尝试不使用select语句作为参数时,如果select语句是作为参数而不是在函数中定义的,则会比接收语句更有效
错误: Route.get()需要回调函数,但得到了一个未定义的对象
这样做好吗?你能支持一下吗,怎么了?
这实际上是一种状态:
function selectStmt(stmt) {
return function (req, res, cb) {
pg.connect(conString, function (err, client, next) {
if (err) {
console.log(err);
} else {
client.query(stmt, function (err, result) {
if (err) {
console.log(err);
} else {
req.package = JSON.parse(JSON.stringify(result.rows));
console.log(req);
cb(req.package);
next();
}
});
}
});
}
}
var getDataX = selectStmt('select x from tblX');
var getDataY = selectStmt('select y from tblY');
router.get('/', getDataX(), getDataY(), function(req, res, next) {
res.render('dbtestasync', {dataPackage1: req.package, dataPackage2: req.package});
});
module.exports = router;
发布于 2016-12-21 09:00:50
您正在错误地构造您的路由定义。当您传递中间件功能时,您将执行它们,getDataX()
。您需要传递对中间件函数getDataX
的引用。然后,Express将传递给包含req
、res
和next
参数的回调函数。
router.get('/', getDataX, getDataY, function (req, res, next) {
res.render('dbtestasync', {dataPackage1: req.package, dataPackage2: req.package});
});
https://stackoverflow.com/questions/41267334
复制相似问题