ejs局部渲染问题(半解决),数据库更新问题

发布于 2022-09-13 00:18:08 字数 3774 浏览 19 评论 0

想做一个简单的后台管理,但是当添加数据后发送更新请求后并不会再次渲染
我想的是添加后执行更新,但服务器可以拿到数据,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨与橙与城 2022-09-20 00:18:08

据我所知 ejs 运行在服务端,所以想更新内容你得刷新网页,或者用 JS 、jQuery 主动更新局部。
我的建议是使用 Vue

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文