ExpressJS 更改路由而不刷新

Posted

技术标签:

【中文标题】ExpressJS 更改路由而不刷新【英文标题】:ExpressJS change route without refresh 【发布时间】:2017-12-07 15:13:55 【问题描述】:

嘿,我有一个使用 Express.jsHandlebars 运行的网站,它的导航栏和侧边栏对于所有页面都保持不变。当我路由时,它只会更改页面容器 body

有没有一种方法可以只加载路线的内容,而无需页面实际刷新并重新加载导航和侧边栏?

我目前正在使用它进行路由。

router.get('/', checkAuthentication, function(req, res)
  res.render('index');
);

任何帮助都会很好,因为我是 node 新手。

我只想加载容器而不是整个 url/页面

【问题讨论】:

【参考方案1】:

感谢大家考虑/查看帖子,我得出的结论是使用 PJAX 来执行此操作。

我读过的教程,想知道的人是:Pjax Tutorial

【讨论】:

【参考方案2】:

您可以使用以下方式将您需要的数据发送给客户端:

res.send(JSON.stringify(Obj);

在 ajax 成功函数中你需要:

JSON.parse(dataSentFromServer);

并在成功函数或您调用的其他函数中使用把手呈现数据

【讨论】:

在express上不重新加载就改变视图就这么复杂吗?

以上是关于ExpressJS 更改路由而不刷新的主要内容,如果未能解决你的问题,请参考以下文章

学习使用ExpressJS 4.0中的新Router

Expressjs - 所有路由都是 404

在运行时添加路由 (ExpressJs)

ExpressJS - 带有路由分离的 Socket.IO

使用 Express JS 路由中的 Socket.io

登录成功后重定向express js路由