nodejs enviar el archivo html al cliente

Utilizo esta función para enviar archivos html al cliente, pero en el cliente no obtengo nada (página en blanco) sin error. Algo me equivoque, por favor ayuda?

var express = require('express'); var fs = require('fs'); var app = express(); app.set('view engine', 'jade'); app.engine('jade', require('jade').__express); app.get('/test', function(req, res) { fs.readFile(__dirname + '/views/test.html', 'utf8', function(err, text){ res.send(text); }); var port = process.env.PORT || 80; var server = app.listen(port); console.log('Express app started on port ' + port); 

Mi archivo test.html

     <style something here  Test    
Somthing here
//something here

Prueba tu código de esta manera:

 var app = express(); app.get('/test', function(req, res) { res.sendFile('views/test.html', {root: __dirname }) }); 
  1. Use res.sendFile en lugar de leer el archivo manualmente para que Express pueda manejar la configuración del tipo de contenido correctamente para usted.

  2. No necesita la línea app.engine , ya que se maneja internamente por Express.

Después de años, quiero agregar otro enfoque mediante el uso de un motor de visualización en Express.js

 var fs = require('fs'); app.get('/test', function(req, res, next) { var html = fs.readFileSync('./html/test.html', 'utf8') res.render('test', { html: html }) // or res.send(html) }) 

Luego, haz eso en tus views/test si eliges el método res.render en el código anterior (estoy escribiendo en formato EJS):

 <%- locals.html %> 

Eso es todo.

De esta forma, no es necesario que rompa los acuerdos de View Engine.

Puedes renderizar la página en express más fácilmente.

 var app = require('express')(); //to install express write "npm install express" app.get('/signup',function(req,res){ res.sendFile(path.join(__dirname+'/signup.html')); 

});

así que si solicita como http://127.0.0.1:8080/signup , se mostrará la página signup.html