Suppose I have a large HTML-file, and at a few places I want to insert a string, which content is set during startup. How would I solve this if I'm only allowed to deliver a static HTML, hence everything has to be handled on the server-side.
You can use JADE templating engine. If it will be static all the time, you can compile the templates to your public directory and serve them with a framework like ExpressJS
If you already have this HTML file, I would suggest use of EJS.
Rewriting anything to haml (jade) is just too much work...
Related
I have an .html file and a corresponding .js file (using Bootstrap) I need to deploy this to Heroku.
I'm really trying to avoid having to rework this entire project, I need more than just bootstrap styling. This project pulls data through an API, and populates based on the data pulled. Input is also needed from user to update the backend through API...
I've tried to find examples of how to accomplish just pulling in html/js into nodeJS/expressJS... but it seems most examples are just to use Bootstrap.css for styling, or there's no actual UI interaction coded in the example.
Any links or input will be greatly appreciated.
If you want to render a html file prepared in the server side. You need a view engine like ejs or pug. You can pass data into the html page. Another way of doing the same thing is a framework called NextJs or NuxtJs but you need to know React or Vue.
You can add bootstrap.css into the public folder and express.static will handle the problem. Or you can use CDN links too.
Then you can add the url of bootstrap.css into the html head.
https://expressjs.com/en/guide/using-template-engines.html
https://expressjs.com/en/starter/static-files.html
I'm quite new to node.js, having migrated from php... So in php you can create say a file called headcode.php and you can put tour navbar there and anything else that needs to be at the beginning or in the head of all your pages, then you can go ahead and include it in all pages on your site.
My question is, how do we do this in node.js? I tried fs.readFile but it only showed html with no css
And i noticed i can't type node.js in an html file, neither can i type html in a .js file without doing res.write for each line of html which is rather tedious.
How can i implement this php ideology of "headcode.php" into node.js?
I reccomend using the express framework (expressjs.com). There are a lot of good and free tutorials on how to use it. And with the use of a Templating Engine like EJS, Handlebars or PUG you can use partitials and even a base Layout (Exception EJS, you need another npm module for this (express-ejs-layouts)
Here are the Docs on howto install the Templateengine of your choice using express. (expressjs.com/en/guide/using-template-engines.html)
I recently started learning nodejs and now i am very confused between what to use for my web app, html or ejs (Express). Ejs uses the Express module whereas the .html uses the HTML module. My first question is, what are the differences between them if exact websites can be made from both. The second question, that extends from my first question is what should one use for a website that is to be uploaded to the cloud. .html or .ejs. I believe .ejs is dynamic (if statements can be used inside the file) therefore .ejs should be used. But, on the other hand, its the first time I am hearing this .ejs name, and I am uncertain as to what future it holds, whereas HTML has a build up name, and most developers and the market knows what it is.
Thanks in advance.
Ejs is a template engine.
It makes possible for you to load data from your application in the view.
After the template is rendered, it generates a .html file for the browser.
Answer 1: index.ejs allows you to execute JavaScript inside html element. For example: loop or perform arithmetic operation. index.html can't include JavaScript inside its elements.
Answer 2: of course, index.ejs will come to my mind first. If you learn php, it is the same. php developers use index.php instead of index.html
Answer 3: you don't have to worry, there are plenty of supports from JavaScript community today.
I am a beginner in express and node, coming from a PHP background. What I used to do in PHP, split a file into header.php, footer.php, sidebar.php etc.
And finally, include them in a index.php or other pages. Is there any way I can do it using express. I am using node and express to serve a HTML file.
All I want is to split them into header.html, footer.html etc and add them in index.html or other pages. Currently, I can serve only a single HTML file using express and node. Any help would be appreciated.
You just have to pick a template engine to do something like that. Here is a list that you can pick:
hogan
jade
handlebars.js
This is quite easier than you think.
Follow the link :
http://expressjs.com/en/guide/using-template-engines.html
The templating engine used there is Pug(upgraded version of jade). You may also choose to use any other one too like that Handlebars, EJS etc.
what template engine is recommended for NodeJS when using jQueryMobile Multi-Page template?
I need logic in every view such as include_once('html-header') because I never know is current page is first on rendering list (aka does it match session-privilege criteria).
I've tried Jade but it seems to be completely impropriety solution for such problems. But maybe my design is wrong?
Probably something simmilar to PHP with <? and <?= will be best to fit my project needs.
Edit:
I'm using nodejs as a HTTP server.
You can use emberjs and detect the states and you can append and delete views as you need them to the outlet, Ember uses handlebars template engine to render html
Emberjs
Also check outlets in this page