我是ExpressJS的新手,我有一个使用EJS的小例子,但我想使用AngularJS来操作DOM。这两种技术都为我提供了DOM操作,为什么有些人一起使用它?我不明白。
我不知道如何呈现HTML文件。 AngularJS与ExpressJS一起使用的正确方法是什么?
res.render('index.html');
答案 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" );
})