ejs局部渲染问题(半解决),数据库更新问题
想做一个简单的后台管理,但是当添加数据后发送更新请求后并不会再次渲染
我想的是添加后执行更新,但服务器可以拿到数据,ejs并不会再次渲染
1.ejs
<% list.forEach(item => { %>
<tr>
<td>
<%= item.Id %>
</td>
<td>
<%= item.uname %>
</td>
<td>
<%= item.usex %>
</td>
<td>
<%= item.uage %>
</td>
<td>
<%= item.uclass %>
</td>
<td>
<%= item.utel %>
</td>
<td>
<%= item.uaddress %>
</td>
<td>
<button>修改</button>
</td>
<td>
<button>删除</button>
</td>
</tr>
<% }) %>
2.sever
app.get(/(\/index)|(\/refresh)/, (req, res) => {
const connection = db();
console.log(__dirname);
connection.connect(err => {
if (err) {
return console.log("链接数据库失败: ", err);
}
console.log("链接数据库成功");
connection.query("select * from students2", (err, result, field) => {
if (err) {
return console.log("读取数据库信息失败: ", err);
}
console.log("读取成功: ", result);
res.render("index", { list: result });
connection.end();
})
})
})
3.JS
function refresh() {
$.ajax({
type: "get",
url: "/refresh",
dataType: "json",
success: function(response) {
}
});
}
$(".adduser").click(function() {
var usex = "";
if ($("#userMan").prop("checked")) {
usex = "男";
} else {
usex = "女";
}
$.ajax({
type: "get",
url: "/addUser",
data: {
userName: userName.value,
userSex: usex,
userAge: userAge.value,
userClass: userClass.value,
userTel: userTel.value,
userAddress: userAddress.value,
},
dataType: "json",
success: function(response) {
if (response.code * 1 == 2000) {
$(".mark").css({
display: "none",
})
refresh();
}
}
});
})
1. 上面的已解决(通过刷新界面解决的)
1.代码
connection.query("update students2 set uname=?, usex=?, utel=?, uage=?,uclass=?,uaddress=? where Id=?", [userName, userSex, (userTel * 1), (userAge * 1), userClass, userAddress, userTel, (userId * 1)], (err, result, field) => {
if (err) {
return console.log("更改数据失败--addUser--", err);
}
res.json({
code: 2000,
msg: "更改成功",
})
console.log("更改数据成功", result);
// console.log("数据信息", field);
connection.end();
})
语法没问题,但数据库没更新...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我所知 ejs 运行在服务端,所以想更新内容你得刷新网页,或者用 JS 、jQuery 主动更新局部。
我的建议是使用
Vue
。