mysql - 使用 Express 将多个 SQL 结果返回到 .handlebars
问题描述
我对 Express 和 Node.js非常陌生,并且很好奇如何将多个 SQL 结果返回到页面元素。
这可能是一个直截了当的问题,但我不知道如何继续,任何帮助将不胜感激。
所以,我有以下page1.js
文件:
module.exports = function(){
var express = require('express');
var router = express.Router();
// Get the results of the first SQL statement
function getMyTable(res, mysql, context, complete){
mysql.pool.query("SELECT * from MyTable", function(error, results){
if(error){
res.write(JSON.stringify(error));
res.end();
}
context.page1table = results;
complete();
}
// Get the results of the second SQL statement
function getMyList(res, mysql, context, complete){
mysql.pool.query("SELECT DISTINCT class from MyTable", function(error, results){
if(error){
res.write(JSON.stringify(error));
res.end();
}
context.page1list = results;
complete();
}
// Return to page
router.get('/',function(req,res){
var callbackCount = 0;
var context = {};
var mysql = req.app.get('mysql');
getMyTable(res,mysql,context,complete);
getMyList(res,mysql,context,complete);
function complete() {
callbackCount++;
if(callbackCount >= 2){
res.render('page1',context);
}
}
}
}();
然后我有一个page1.handlebars
文件:
<form id = "list_class">
<fieldset>
<label> Classses:
<select name = "class_list" id = "class_list">
{{#each page1list}}
<option value = '{{class}}'>{{class}}</option>
{{/each}}
</select>
</label>
</fieldset>
</form>
<table class ="resultTable">
<tbody id = "tableBody">
{{#each page1table}}
<tr>
<td>{{name}}</td>
<td>{{class}}</td>
<td>{{id}}</td>
</tr>
{{/each}}
</tbody>
</table>
编辑:我应该注意显示结果page1table
,但结果page1list
不显示,尽管调用console.log(context.page1list);
infunction getMyList()
确实将预期列表打印到控制台。我错过了什么?
解决方案
你确定你没有错过 page1.js 中的任何部分吗?我很好奇为什么当你的括号和花括号没有正确闭合时你没有收到任何错误?
例如:
// Get the results of the second SQL statement
function getMyList(res, mysql, context, complete){
mysql.pool.query("SELECT DISTINCT class from MyTable", function(error, results){
if(error){
res.write(JSON.stringify(error));
res.end();
}
context.page1list = results;
complete();
}
您错过了)
关闭查询的 a}
和关闭功能的 a
推荐阅读
- scala - 如何将 Spark 数据框列与另一个数据框列值进行比较
- javascript - 如何理解 JavaScript 中未定义的变量?
- kotlin - RestAssured 4.3.0 中的“接收器类未定义或继承实现”
- flutter - 推送到页面和操作按钮可用时,Flutter Appbar 标题不居中
- c++ - C ++将纳秒转换为毫秒
- android - 在 web 视图中使用服务人员和自签名证书加载 url 时出错
- obiee - 使用 obiee 中的参数打开网页
- flutter - 我正在尝试制作一个颤动的应用程序来控制我的飞利浦 Hue 灯,但我遇到了 hue_dart 问题
- c++ - Qt - 跟踪 QAbstractAnimation 运动
- javascript - 根据原始数组索引是奇数还是偶数创建一个新数组