Tengo algunas variables booleanas y de cadena en el lado del servidor que deben pasarse al lado del cliente. ¿Cómo puedo implementar esto? en mi archivo html, quiero una etiqueta h1 si mi bandera en el lado del servidor es verdadera y si la bandera es falsa, es solo otro trabajo. al principio mi bandera es falsa. servidor.js:
app.get('/' , (req, res) => { res.sendFile(path.join(__dirname+'/views/UiOfServer.html')); });Encontré la respuesta yo mismo, la solución es usar EJS. porque la representación del servidor es tan fácil con eso. Cambié mi archivo html a un archivo EJS y mi pregunta se resolvió. mi código es:
index.ejs:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>example of EJS</title> </head> <body> <% if(flag){ %> <h1><%= username %></h1> <% } else{ %> <!-- some work --> <% } %> </body> </html>servidor.js:
let express = require('express'); let path = require('path'); let app = express(); let router = express.Router(); app.use('/', router); app.set('view engine', 'ejs'); const port = 2020; app.get('/' , (req, res) => { res.render(path.join(__dirname+'/views/UiOfServer.ejs'), {flag: false, username: 'null'}); }); app.get('/click/' , (req, res) => { res.render(path.join(__dirname+'/views/UiOfServer.ejs'), {flag: true, username: 'Hessam :) '}) } app.listen(port, (err, res) => { if(err){ console.log(`Server Error: ${err}`); } else{ console.log(`server started on ${port}`); } });