Node.js

FrontEnd Vs BackEnd

frontend→ ยังไม่สามารถเซฟข้อมูลต่างๆได้ edit เก็บได้ แต่ไม่เหมือน database หลังบ้าน

JSX, HTML, CSS, JS → Compile / Transform (Vite(Node.js)) → HTML, CSS, JS → Web

backend→ node.js Express mongoDB

`Node.js` +      →  Save/Read data

`Express`        ←                       mongoDB

API                                       Database  

`Web Browser` +      →  HTTP/API       `Node JS`

`Vite React`         ←  Data           `Express`

`HTML CSS JS`                          `mongoDB`

MERN -> mongo express react node

backend responsibilities

Why Node.js

Node.js → JavaScript Runtime

NPM

npm run start

npm run dev

"name": "my_package",
"version": "1.0.0",
"dependencies": {
  "my_dep": "^1.0.0",
  "another_dep": "~2.2.0"
},
"devDependencies" : {
  "my_test_framework": "^3.1.0",
  "another_dev_dep": "1.0.0 - 1.2.0"
}
"scripts": {
    "dev": "react-scripts start",
    "start": "react-scripts start",
}

REPL READ-EVAL-PRINT-LOOP

setInterval(() => {}, 1000);


async function test(){

};

class Tot {

};

Core Module สิ่งที่ติดมากับ node ไม่ต้องลงเพิ่ม

const fs = require('fs'); //fs = file system
const os = require('os'); //os = operating system

const express = require('express');

const app = express();

app.get('/', (req, res) => {
	res.end('Hello World');
});

app.listen(8080, () => {
	console.log('Server listening on 8080');
});

ถ้าเอาให้เพื่อนไปใช้ จะใช้ express ยังไม่ได้ เพราะยังไม่ได้ install module express

"name": "my_package",
"version": "1.0.0",
"dependencies": {
  "express": "^4.18.2",
}

เลยมี dependencies เพื่อให้จำได้ว่าลงอะไรไปบ้าง

ตอนลงก็ npm install --save express

ปกติ node_module จะไม่เอาขึ้น git กัน เพราะหนัก เพิ่มไฟล์ .gitignore เลยจะมีแต่ package.json นั่นเอง

'.gitignore'

node_modules

package conflict กันได้มั้ย ตอบ ‘ได้’ npm ฉลาด จะลงให้ package a ver0.1 , ver0.2 จะลงทั้งคู่ไรงี้ ไม่สำคัญมากเท่าไหร่