node.js - node js guide
nodejs enviar el archivo html al cliente (3)
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
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
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style something here </style>
<title>Test</title>
<script src="..."></script>
</head>
<body>
<div> Somthing here </div>
<script type="text/javascript">
//something here
</script>
</body></html>
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.
Prueba tu código de esta manera:
var app = express();
app.get(''/test'', function(req, res) {
res.sendFile(''views/test.html'', {root: __dirname })
});
Use res.sendFile lugar de leer el archivo manualmente para que Express pueda manejar la configuración del tipo de contenido correctamente para usted.
No necesita la línea
app.engine
, ya que se maneja internamente por Express.