Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Render raw HTML

I want to render raw .html pages using Express 3 as follows:

server.get('/', function(req, res) {     res.render('login.html'); } 

This is how I have configured the server to render raw HTML pages (inspired from this outdated question):

server     .set('view options', {layout: false})     .set('views', './../')     .engine('html', function(str, options) {         return function(locals) {              return str;         };     }); 

Unfortunately, with this configuration the page hangs and is never rendered properly. What have I done wrong? How can I render raw HTLM using Express 3 without fancy rendering engines such as Jade and EJS?

like image 476
Randomblue Avatar asked Jan 02 '13 01:01

Randomblue


People also ask

How do I display raw in HTML?

What is required to display Raw HTML code on a Webpage? In order to display HTML code on a webpage, you need to get rid of start tag < and end tag > symbol of every tag in your HTML code.

How do I render in HTML?

render() function takes two arguments, HTML code and an HTML element. The purpose of the function is to display the specified HTML code inside the specified HTML element.

How do I render raw HTML in Blazor?

Raw HTML can be rendered in Blazor by using the MarkupString. You can set the raw HTML as a string to any parameter and cast it in a markup string.


1 Answers

What I think you are trying to say is: How can I serve static html files, right?

Let's get down to it.

First, some code from my own project:

app.configure(function() {     app.use(express.static(__dirname + '/public')); }); 

What this means that there is a folder named public inside my app folder. All my static content such as css, js and even html pages lie here.

To actually send static html pages, just add this in your app file

app.get('/', function(req, res) {   res.sendFile(__dirname + '/public/layout.html'); }); 

So if you have a domain called xyz.com; whenever someone goes there, they will be served layout.html in their browsers.

Edit

If you are using express 4, things are a bit different. The routes and middleware are executed exactly in the same order they are placed.

One good technique is the place the static file serving code right after all the standard routes. Like this :

// All standard routes are above here app.post('/posts', handler.POST.getPosts);  // Serve static files app.use(express.static('./public')); 

This is very important as it potentially removes a bottleneck in your code. Take a look at this stackoverflow answer(the first one where he talks about optimization)

The other major change for express 4.0 is that you don't need to use app.configure()

like image 141
shash7 Avatar answered Oct 12 '22 14:10

shash7