如何路由Node.js单页面应用程序?

时间:2018-01-02 15:39:34

标签: javascript jquery node.js ajax single-page-application

我正在尝试使用具有多个标签的Node.js设计单页应用,并且每个标签上可以包含许多图像或脚本,因此我希望每次都能阻止加载每个标签的内容用户访问该页面。理想情况下,当用户切换标签时,服务器会发送包含图像和脚本的html,客户端会显示该标签而不重新加载页面。

我选择SPA设计的原因是标签之外是聊天系统以及后台运行的其他内容,每次重定向发生时我都不想重新发送给客户端。

所以我的问题是发送html的最佳方法是什么,或者还有更好的方法仍然使用SPA设计?

最好的方法是将路由器中的html发送到客户端,然后使用ajax来阻止页面刷新并添加新的选项卡html并在此之后删除旧的选项卡html吗?

2 个答案:

答案 0 :(得分:1)

您只能使用一个Express.js来使用route

可以调用此路线:

var app = require('express')();

app.get('/',function(req, res) {
 res.sendFile(path.join(__dirname + '/index.html'));
}

请注意:

  • 这是一条GET路线
  • 它只是使用sendFile
  • 发送文件内容

之后,您可以拥有许多API路径来获取选项卡的数据。我建议这些路线是这样的:

app.post('/about',function(req, res) {
 res.json({ data: "your data here" });
}

app.post('/contact',function(req, res) {
 res.json({ data: "your data here" });
}

在这些路线上请注意:

  • 这些是POST路线
  • 仅返回JSON

答案 1 :(得分:0)

SPA意味着“单页面应用”,您只有一个HTML框架,然后JavaScript框架将处理“页面”和HTML之后的