Skip to content

Instantly share code, notes, and snippets.

@sergiodxa
Last active August 29, 2015 14:22
Show Gist options
  • Save sergiodxa/587fbc832b682ff55c71 to your computer and use it in GitHub Desktop.
Save sergiodxa/587fbc832b682ff55c71 to your computer and use it in GitHub Desktop.
Usando react-engine para renderizar React.js en el server con Express.j
import express from 'express';
import engine from 'react-engine';
// iniciamos nuestra aplicación de express
const app = express();
// definimos el engine para archivos jsx
app.engine('.jsx', engine.server.create());
// configuramos la ruta a las vistas
app.set('views', path.join(__dirname, 'views'));
// indicamos que el engine a usar es el de archivos jsx
app.set('view engine', 'jsx');
// le indicamos que use react-engine como engine de nuestras vistas
app.set('view', engine.expressView);
// simplemente llamamos a res.render y react-engine se encarga de renderizar el componente Home para nosotros
app.get('/', (req, res) => res.render('home'));
app.listen(3000);
import React from 'react';
import Layout from './layout';
const Home = React.createClass({
render() {
return (
<Layout title="Homepage">
<h1>Hola mundo</h1>
</Layout>
);
}
});
export default Home;
import React from 'react';
// acá definimos el layout de nuestro HTML donde están los tags html, head, body, etc.
const Layout = React.createClass({
render() {
return (
<html lang="es-AR">
<head>
<meta charSet="utf-8" />
<title>{ this.props.title }</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet"
href="/assets/css/style.css" />
</head>
<body>
{ this.props.children }
<script src="/assets/js/app.js"></script>
</body>
</html>
);
}
});
export default Layout;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment