230329(μ)
π μ±μ₯μΌμ§ 4.0
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ (1.0)ν€μλ
μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
π (2.0)κ²½ν μμ£Όλ‘
λ¨μ μ 보λ₯Ό μ λ¬νκΈ°λ³΄λ€ λ¬΄μμ λ°°μ κ³ μ΄λ»κ² ν΄κ²°νλμ§ μ§§κ³ κ°λ¨νκ² μμ±
βοΈ (3.0)μ ν΄μ§ ν νλ¦Ώμ λ§μΆ°μ
ν€μλ, κ²½ν λͺ¨λ μ’λ€. λ€λ§ λ§€μΌ μμ±νκΈ°λ‘ λ§μ λ¨Ήμλ§νΌ ν΅μ¬λ§ κ°κ²°νκ² μ 리ν μ μκ² ν νλ¦Ώμ μμ±
(3.1)230102λΆν° μμλλ νμ΅μ κ΄ν λ΄μ© μΆκ°
(3.2)230313λΆν° μ’λ κ²½ν, κ°μ μμ£Όμ λ΄μ©λ λ΄κΈ°!
πΎ (4.0)νμ΅ ν€μλμμ μ΅λν κ°λ¨ν μ 보 μ 곡, κ³ λ―Όμμ λ΄ κ²½νμ μμΈν μ μ!
π μ€λμ νμ΅ ν€μλ
Node.js, express
- nodeJS: ν¬λ‘¬μ V8 μλ°μ€ν¬λ¦½νΈ μμ§μ κ°μ Έμμ μλ‘κ² νμμν¨ μλ°μ€ν¬λ¦½νΈ λ°νμ νκ²½. μ£Όλ‘ μλ°μ€ν¬λ¦½νΈλ‘ μλ² κ°λ°μ νκΈ°μν΄ μ¬μ©λλ€.
- νΉμ λΈλΌμ°μ μμμ js apiλ€μ μ μΈνκ³ HTTPμ νμΌ μμ€ν λΌμ΄λΈλ¬λ¦¬λ€μ ν¬ν¨ν μ νμ μΈ μ¬λ¬ OS apiλ₯Ό μΆκ°νλ€.
- express: Node.js λ°νμ νκ²½μμ ꡬλλλ μΉ νλ μμν¬.
- μΉ μ΄ν리μΌμ΄μ μ λ§λ€κΈ° μν μ¬λ¬ λΌμ΄λΈλ¬λ¦¬μ λ―Έλ€μ¨μ΄ λ±μ΄ λ΄μ₯λμ΄μλ€.
- κ°λ°μλ€μκ² κ°λ° κ·μΉμ κ°μ νλ νλ μμν¬λ‘ ν΅μΌμ±μ ν₯μμν¬ μ μλ€.
import * as express from 'express';
import * as bodyParser from 'body-parser'; // μμ²μ λν bodyλ₯Ό νμ±νλ μν
import * as dotenv from 'dotenv'; // .env νμΌμ ν΅ν΄ 보μμ κ°λ €μΌν λ°μ΄ν°λ₯Ό λ°λ‘ λλ€.
import * as cors from 'cors'; // CORS μλ¬λ₯Ό ν΄κ²°νκΈ° μν¨
import * as mongoDb from 'mongodb'; // mongodbμ μ°κ²°!
dotenv.config(); // μ΄μ μλμμ process.envλ‘ μ΄λ€ κ°λ€μ κ°μ Έμ¬ μ μλ€.(μ¨κΈΈ μ μλ€.)
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
const MongoClient = mongoDb.MongoClient;
const connection = MongoClient.connect(
`mongodb+srv://${process.env.MONGO_USER_NAME}:${process.env.MONGO_PASSWORD}@${process.env.MONGO_CLUSTER_NAME}.jy2zpck.mongodb.net/?retryWrites=true&w=majority`,
);
let db;
connection
.then((client) => {
db = client.db('database-name');
app.listen(process.env.PORT, () => {
console.log('listening on');
});
app.get('/search', (req, res) => {
res.json('ν
μ€νΈ λ¬Έμμ΄');
});
})
.catch((err) => {
console.log(`μλ¬ λ°μ: ${err}`);
});
μμ κ°μ λ°©μμΌλ‘ local ν¬νΈμ μλ²λ₯Ό νλ λμ°κ³ clientμͺ½ appμμ fetch apiλ‘ ν΅μ νλ©΄ λλ€.
π μ€λμ κ³ λ―Ό ν€μλ
express κ·Έ μ체
νβ¦ κ·Έλ₯ json-serverλ mswλ₯Ό μ¬μ©ν κΉ νλ€κ°, μ΄λ² κΈ°νμ μ΄μ λΆν° λ°°μ°κ³ μΆμλ expressλ₯Ό μ¬μ©ν΄λ΄€λ€. μμ£Ό κΈ°λ³Έμ μΈ μλ²λΌμ μμ§ν κ·Έλ κ² μ΄λ €μ΄ 건 μμ§λ§ κ·Έλλ dbμ μ°κ²°νκ³ clientμ ν΅μ λ μ±κ³΅ν΄λ³΄κ³ β¦ μ¬λ¬κ°μ§λ₯Ό ν΄λ³΄λ©΄μ μ λ°μ μΈ μ νμ νλ¦μ μ΄ν΄ν μ μκ² λ κ² κ°μμ λ§μ‘±μ€λ½λ€.(μΌλ¨ μλ‘ λ°°μ°λ 건 λ€ μ¬λ―Έμλ€.)
import * as β¦
μ΄ λΆλΆβ¦!!! μ κ·Έλ₯ import νλ©΄ μλ κΉ..? μ΄ λΆλΆμ λν΄μ ꡬ체μ μΌλ‘ μ’ μ°Ύμλ³Ό μμ .
π μμ½ λ° ν루 κ°λ¨ νκ³
- νλ£¨μ’ μΌ μλ² κ΅¬ν 곡λΆ
- κ°μ μλ°μ€ν¬λ¦½νΈ μΈμ΄λ‘ μ΄λ κ² λ€λ₯Έ κ±Έ λ§λ€μ΄λΌ μ μλ€λ..! μ¬λ―Έμλ€γ γ γ γ γ
μ€λμ μν μ
- μ΄μ¬ν nodejs λ° express 곡λΆν μ
- μλ² λμ°κ³ λμκ°μ ν΅μ κΉμ§ μ±κ³΅ν μ
μ€λμ μμ¬μ΄ μ
- μ‘°κΈ λ μ곡λΆμκ°μ ν보ν΄μΌκ² λ€!
μ°Έκ³
- κ°μ
- express 곡μλ¬Έμ