这是我的问题。我正致力于在node.js应用程序上显示和操作一个简单的mysql数据库。我也使用jquery和bootstrap。我知道我的main.handlebars中成功引用了两个包。我的应用程序主页加载正确但我在app.js文件中使用render和renderTable函数来显示我从调用我的数据库中收到的表。我已经确认我从数据库中获取数据。我在开发人员工具中没有收到任何错误,当我绕过app.js并通过发出app.get请求来呈现表格时,我收到了正确的数据。
我的问题是,当我加载主页时,某些东西阻止了我的表的呈现。据我所知,当我设置$(document).ready(function()
时,该函数将在页面加载时执行。
我的假设是,我的app.js文件中没有正确通信,并阻止执行渲染功能。我是node.js的新手所以我很可能忽略了一些非常简单的东西,但我不确定它是什么。
app.js渲染功能
var renderTable = function(url, selector) {
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
$(selector).html('');
$(selector).append('<h3>' + selector.substring(1) + '</h3>' + jsonToTable(data, selector.substring(1)));
$(selector).append(composeForm(selector, getKeys(data.results[0])));
$(selector + ' .save').on('click', submitEntry);
$(selector + ' .delete').on('click', deleteEntry);
}
});
};
var render = function() {
console.log(Im Here!);
renderTable('/artists', '#artists');
renderTable('/country', '#country');
renderTable('/city', '#city');
renderTable('/medium', '#medium');
renderTable('/artists_medium', '#artists_medium');
renderTable('/artists_residence', '#artists_residence');
$('.search').on('click', searchChar);
};
$(document).ready(function() {
console.log("App.js is reached.");
render();
});
server.js requests
var selectTableData = function(res, table) {
var ctx = {};
pool.query('SELECT * FROM ' + table, function(err, rows, fields) {
if (err) {
console.log(err);
return;
}
ctx.results = rows;
res.send(ctx);
});
};
app.get('/artists', function(req, res) {
selectTableData(res, 'artists');
});
app.get('/country', function(req, res) {
selectTableData(res, 'country');
});
app.get('/city', function(req, res) {
selectTableData(res, 'city');
});
app.get('/medium', function(req, res) {
selectTableData(res, 'medium');
});
app.get('/artists_medium', function(req, res) {
selectTableData(res, 'artists_medium');
});
app.get('/artists_residence', function(req, res) {
selectTableData(res, 'artists_residence');
});
论文当然是一个更大项目的片段。