javascript - 单页应用程序中模板检索的困惑以及与典型文件检索的区别

标签 javascript node.js http angularjs express

对于 AngularJS 处理单页面路由的方式,以及这是否与从服务器检索典型 css/javascripts 文件的方式完全相似,我在概念上不确定。

假设我渲染的 html 文件中有以下来源:

/javascripts/client.js
/css/main.css

我从来不需要在我的服务器上监听它们(在 Express 中,像这样):

app.get('/:dir/:name',function(req,res){
 if (req.params.dir == 'javascripts){
  //render the client.js
  //....
  //render the main.css
 })

Express 知道去哪里寻找它们,并在我背后取回它们。即使我尝试倾听它们,由于某种原因,当它们到来时我也无法捕获它们。

另一方面,当我在 AngularJS 中创建一条如下所示的路由时:

.config(function($routeProvider){
$routeProvider.when('/write',{templateUrl: '/templates/mainpage'})  
});

我必须在后端监听它并手动检索它。我必须这样写:

app.get('/templates/:name',function(req,res){
 res.render('templates/'+req.params.name');
});

我如何理解这种差异?

我很欣赏任何光线!

最佳答案

Express 不会在背后做任何事情。 Express 知道在哪里查找这些静态文件,因为您通过定义告诉 Express 在哪里查找它们:

app.use(express.static(path.join(__dirname, 'public')));

不要这样做:

app.get('/templates/:name',function(req,res){
 res.render('templates/'+req.params.name');
});

创建静态 html 模板并将其放入 public 文件夹中。 express 将为他们服务。 使用来自服务器的 json 数据填充模板。

您正在混合表达 View 和 angularjs 模板。两者都是为不同的用途而设计的。

关于javascript - 单页应用程序中模板检索的困惑以及与典型文件检索的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665150/

相关文章:

javascript - 如何使用 Node JS 驱动程序创建新的 MongoDb 数据库

javascript - 我可以使用换行符和制表符来格式化我的 JavaScript/JQuery 代码吗?

javascript - 使用 Jasmine 对 api 的 promise 进行单元测试

javascript - 加载新页面时保持套接字连接

rest - 统一: Use HTTP PUT in Unity3D

java - 如何处理 Java HttpServer 中失败的身份验证

javascript - 我可以获得一些关于带有图像按钮的列表控件的建议吗?

javascript - 滚动并放大 morris 图表数据已折叠

node.js - AWS Step Function : Function . length() 在选择状态的变量字段中返回错误

http - jhipster 错误 400 BAD REQUEST 并保存 $resource