Try   HackMD
tags: jptw thesis technology nodejs webpage

Notes for Node.js

Folder Structure

├── /node_modules
├── /views
│   ├── index.html
│   └── demo.html
├── /public
│   ├── /assets
│   ├── /css
│   ├── /js
│   └── /lib
├── server.js
└── package.json

Setup Nodejs Server

// init
$ npm init

// install packages
$ npm install express --save
$ npm install ejs --save

// run 
$ node server.js

Example

const express = require('express');
const app = express();
const path = require('path');
const router = express.Router();

const PORT = 8080;

// View engine setup
app.set('views', path.join(__dirname,'/views'));
app.set("view options", {layout: false});
app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);

// Router setup
router.get('/',function(req,res){
  res.render('index');
});

router.get('/demo',function(req,res){
  res.render('demo');
});


app.use(express.static(__dirname + '/public'), router);
app.listen(PORT, function() {
	console.log('Label Toolkit listening on port ' + PORT);
});

Ref:
Express
[1] 有輪堪用直須用:Express.js
[2] Node.js — 從一個實例看Express 的運作方式
[3] 4.x API | Express
[4] How do I use HTML as the view engine in Express?
[5] NodeJS + Express + i18next 支援多國語系吧!

Other
[1] Folder structure for a Node.js project
[2] 1. 命名規則 | GitBook
[3] Node.js 是什麼?跟 JavaScript 有什麼關係

Environ

dotenv

** .env **
NODE_ENV=PRODUCTION
DATABASE_HOST=localhost
** server.js **
require('dotenv').config();
console.log(process.env.NODE_ENV);

Ref:
[1] Github - motdotla / dotenv
[2] How can I set an environmental variable in node.js?

Others:
[1] Managing Front-end JavaScript Environment Variables
[2] dotenv-webpack
[3] pass value from node.js to javascript