如何使用ExpressJS发送AngularJS文件?

时间:2015-10-07 02:06:57

标签: angularjs node.js express ejs

我是ExpressJS的新手,我有一个使用EJS的小例子,但我想使用AngularJS来操作DOM。这两种技术都为我提供了DOM操作,为什么有些人一起使用它?我不明白。

我不知道如何呈现HTML文件。 AngularJS与ExpressJS一起使用的正确方法是什么?

res.render('index.html');

2 个答案:

答案 0 :(得分:2)

据我所知,EJS真的是模板化的,所以没有嵌入式js在客户端上执行。

我个人发现了一些使用AngularJS或任何客户端框架的模板语言很方便的情况。例如,有时能够将一些csurf标记或客户端应用程序所需的会话数据插入到服务器上的html中是很好的。其他时候没有必要。

至于渲染html,请使用express.static中间件。它附带Express,您传递文件路径,并返回一个处理程序,该处理程序将提供给定目录的内容。您可以将express.static放在中间件链中的任何位置,但我通常将其放在顶部以避免命名问题。有关详细信息,请阅读documentation

请考虑以下事项:

 var express = require('express')
 var app = express();
 // Asssuming we have a directory 
 // `public` in the root of the application
 app.use('/', express.static(__dirname + '/public'));
 // now you're serving all the files in public directory off the root path
// Add middlewares and routes...

对于一个非常简单的应用程序,您可以使用fs模块,并将文件的内容流式传输到响应中。以下是如何执行此操作的简单示例,在生产中您希望监听error事件并实现一些缓存控制。

  app.get('/', function(req, res) {
     res.set('Content-Type', 'text/html');
     fs.createReadStream('./index.html').pipe(res);
  });

答案 1 :(得分:0)

请使用此:首次渲染 有关更多信息,请转到她http://www.tutorialspoint.com/nodejs/nodejs_express_framework.htm

var express = require('express');
var app = express();
 app.get('/', function (req, res) {
 res.sendFile( __dirname + "/" + "index.html" );
})