-first commit

This commit is contained in:
2025-11-11 12:36:06 +07:00
commit b99c214434
5683 changed files with 713336 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
src/
├── app.js
├── route.js
├── controllers/
│ └── user.controller.js
├── services/
│ └── user.service.js
├── config/
│ └── db.js
└── utils/
└── response.js

View File

@@ -0,0 +1,20 @@
CREATE TABLE actmst ( --accounting master
actseq INTEGER NOT NULL,
actnum INTEGER NOT NULL,
acttyp VARCHAR(1) NOT NULL, -- 'e' = expense (รายจ่าย), 'i' = income (รายรับ)
actcat VARCHAR(50), -- หมวดหมู่ a,b,c,d,e → รายละเอียดจาก dtlmst table
actqty NUMERIC(12, 2) NOT NULL, -- จำนวนเงิน รองรับสูงถึงหลักล้าน
actcmt TEXT, -- คำอธิบายเพิ่มเติม
actacpdtm CHAR(12) NOT NULL,-- รูปแบบ: ddMMyyyyHHmm เช่น '111120251200' = 11 พ.ย. 2025 เวลา 12:00
PRIMARY KEY (actseq, actnum)
);
CREATE TABLE IF NOT EXISTS dtlmst (
dtltblcod VARCHAR(20) NOT NULL, -- รหัสกลุ่ม เช่น ACTTYP, ACTCAT
dtlcod VARCHAR(10) NOT NULL, -- รหัสค่าภายในกลุ่ม เช่น 'e', 'i'
dtlnam VARCHAR(100), -- ชื่อภาษาไทย เช่น 'รายจ่าย'
dtleng VARCHAR(100), -- ชื่อภาษาอังกฤษ เช่น 'expense'
dtlmsc VARCHAR(100), -- อื่น ๆ เช่น รหัสสี หรือหมายเหตุ
CONSTRAINT dtlmst_pkey PRIMARY KEY (dtltblcod, dtlcod)
);

View File

@@ -0,0 +1,23 @@
🧩 ROUTE CONCEPT (Pattern ของเรา)
---------------------------------
✅ route.js เดียวต่อ microservice
✅ 1 route → 1 controller
✅ ไม่มี async / logic / try-catch ใน route
✅ controller รับ req/res แล้วจัดการ flow ทั้งหมด
✅ controller มี onNavigate(), onUserController()
✅ service แยกเฉพาะ database logic
⚙️ ROUTE TEMPLATE
const controller_post = userController()
router.post('/', (req, res) => controller_post.onNavigate(req, res))
router.get('/', (req, res) => controller_post.onNavigate(req, res))
🧠 CONTROLLER FLOW
- onNavigate() → check input, call onUserController()
- onUserController() → switch(req.method)
- catch → set idx=1 → send error
- finally → ถ้า idx=-1 → send success
💾 SERVICE FLOW
- connect pgsql
- return rows or affected row

View File

@@ -0,0 +1,53 @@
🚀 PART 1 : สร้างโปรเจ็กต์หลัก
📁 1. เปิดโฟลเดอร์หลักของระบบ
E:\Skyz\micro-service-api
📦 2. สร้างไฟล์หลัก
mkdir shared
mkdir gateway-api
mkdir exthernal-mobile-api
🧱 PART 2 : ติดตั้ง Node.js โปรเจกต์
🌐 1. สร้าง package.json ในแต่ละ service
cd gateway-api
npm init -y
cd ../exthernal-mobile-api
npm init -y
📦 2. ติดตั้ง dependencies หลัก
npm install express pg cors dotenv
npm install express-session connect-redis ioredis
npm install --save-dev nodemon
npm install -g nodemon
npm install jsonwebtoken
ติดตั้ง Redis
✏️ 3. เพิ่ม script ใน package.json
"scripts": {
"start": "node src/app.js",
"dev": "nodemon src/app.js"
}
⚙️ วิธีรันแต่ละ service
จาก root (micro-service-api):
# เริ่มโปรแกรมหลัก
npm run dev
# หรือเริ่มเฉพาะ API ย่อย
npm run start:mobile
npm run start:wep