节点 JS 快速车把重新加载页面
Node JS express-handlebar reloading a page
我正在编写一个 Node.js + Express + express-handlebar 应用程序。我正在从 MySQL 数据库中读取数据并将其显示在表中。我正在实现分页功能,单击"下一步"按钮时,我对我的节点js服务器进行ajax调用
$j('.btn-nxt').click(function(){
$j.ajax({
type: 'post',
url: '/',
data : {
action: 'next'
},
error: function(err) {
console.log('------------ Error while updating this resident: ' + err);
console.log('------------ Error while updating this resident: ' + err.message);
}
});
});
下面是我的索引.js我的索引的路由.handlebars
索引.js
var express = require('express');
var router = express.Router();
var callDatabase = require('../config/database.js');
var startIndex = 0;
var recordLimit = 10;
//home page route
router.get('/', function(req, res){
callDatabase.getResidents(req, res, startIndex, recordLimit);
});
router.post('/', function(req, res){
var data = req.body;
var action = data.action;
if(action == 'next') {
startIndex += recordLimit;
}
callDatabase.getResidents(req, res, startIndex, recordLimit);
res.redirect('/');
});
module.exports = router;
这是数据库.js我正在对我的数据库进行实际调用
数据库.js
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'dbname-db.rds.amazonaws.com',
user : 'username',
password : 'password',
port: '3306',
database : 'dbname',
multipleStatements: true,
dateStrings: true
});
var residentQuery = 'SELECT idResidents, name, primaryEmail FROM Residents LIMIT ';
exports.getResidents = function(req, res, startIndex, recordLimit) {
connection.query(residentQuery + startIndex + ',' + recordLimit, function(err, rows, fields) {
if (err) {
console.log('----------------------- ERROR: Error querying records - ' + err);
console.log('----------------------- ERROR: ' + err.message);
return err;
}
for(var i in rows) {
console.log('id: ' + rows[i].idResidents + ' name: ' + rows[i].name + ' email: ' + rows[i].primaryEmail);
}
res.render('index', {
title:'Test Node App',
dbrows: rows
});
});
}
当我运行我的应用程序时,会出现前 10 行,当我单击下一步按钮时,将进行 ajax 调用,我可以在 conslo.log of database.js 中看到接下来的 10 行。但是,我的观点没有得到更新。我尝试从 index.js 的 route.post() 和数据库调用 res.render('/'.js但它给了我一个错误 - "发送后无法设置标头"。
如何刷新我的表?我正在使用{{#each dbrows}}...{{/each}} 来填充行。
我使用 location.reload() 从 ajax 本身重新加载了页面。因此,当单击下一个或上一个分页选项时,它会转到 ajax 函数,该函数又调用节点服务器以获取下一组/上一组数据。在数据之后的同一个 ajax 函数中,我添加了成功属性 - 成功:{ location.reload() },错误:{ .... }。现在它就像一个魅力。
相关文章:
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改css链接并等待加载新的css
- 如何在Ajax加载新内容时停止JavaScript执行
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用输入数据加载新的extjs图表
- JQuery Masonry.Ajax图标和“;加载新项目”;绳子放错地方了
- 通过javascript在同一个打开的选项卡中重新加载新的网页内容
- 当用户到达页面右侧时加载新内容
- 数据表 AJAX 筛选器重新加载数据
- 超链接单击以加载新页面并执行JavaScript
- 单击时加载新的 SVG
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- ajax在页面刷新之前不会加载新的sql结果
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- 使用Ajax加载页面,并在必要时加载新脚本
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 正在加载新的Javascript,但正在调用旧的Javascript.MVC
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载