μλ°μ€ν¬λ¦½νΈμ λΈλΌμ°μ μμμ λμκ°λ μΈμ΄μ΄λ€ λΈλΌμ°μ λ°μμ μ΄κ²μ μ¬μ©νκΈ° μν΄μ Node.JS(λ°νμ νκ²½)μ΄ νμνλ€
JSλ λΉλκΈ° κΈ°λ°μ μΈμ΄μ΄λ€ νλμ μ°λ λλ‘ μ¬λ¬ Clientμ μμ²μ λ°κ³ μλ΅μ ν΄μ€λ€
λΉλκΈ° κΈ°λ°(Non-Blocking I/O)μ μΈμ΄μ¬μ μ½λ°±ν¨μμ μλ¬κ° λ°μν λ λΆλ¬μ€λ ν¨μλ₯Ό μ§μ μ ν΄μ€μΌνλ€
νλμ μ°λ λλ‘ μ°μ°μ²λ¦¬νκΈ° λλ¬Έμ 볡μ‘ν μ°μ°μ²λ¦¬κ° μμ μ μ΄λ €μμ μ§λ©΄νκ±°λ μλ¬κ° λ°μν μ μλ²κ° λ©μΆλ λ¨μ μ΄ μλ€
Express νλ μμν¬λ‘ μλ²λ₯Ό ꡬλν μ μλ€
morgan λͺ¨λμ μ¬μ©νμ¬ ν°λ―Έλμ μ€λ₯μ¬νμ λμ€λλ‘ ν μ μλ€
const express = require("express");
const morgan = require("morgan");
const app = express();
const port = process.env.PORT || 5000;
const host = process.env.HOST || "0.0.0.0";
app.listen({ port, host }),
async () => {
try {
await console.log(
`Server is running on port ${port}`
);
} catch (err) {
await console.log(`${err}`);
}
};
Node.JSλ‘ ν¨μ¨μ μΈ μ΄μμ μνμ¬ κ³μΈ΅κ΅¬μ‘°λ₯Ό λλμ΄μΌνλ€
Routerλ‘ URlμ λλκ³ Controllerλ‘ λ‘μ§μ ꡬμ±νλ€
const router = require('express').Router();
const controller = require('./controllers')
router.get('/router', controller)
module.exports = router;
const express = require("express");
const morgan = require("morgan");
const Router = require("./routes");
const app = express();
const port = process.env.PORT || 5000;
const host = process.env.HOST || "0.0.0.0";
app.listen({ port, host }),
async () => {
try {
await console.log(
`Server is running on port ${port}`
);
} catch (err) {
await console.log(`${err}`);
}
};
module.exports = { async (req, res, next) => {
return res.json({'Hi'})
}
μμ²κ³Ό μλ΅μ¬μ΄μμ μ²λ¦¬νλ μΌμ’
μ μ΅μν νλ μμν¬λ₯Ό λ§λ€μ΄μ ν¨μλ₯Ό νΈμΆν μ μλ€
Express.JS
μμ use
ν¨μλ₯Ό μ¬μ©νμ¬ μνλ λ―Έλ€μ¨μ΄λ₯Ό λ±λ‘ν μ μλ€
app.use(express.urlencoded({ extended: false }));
// url 쿼리μ€νΈλ§μ parsing(req.body)
app.use(express.json());
// jsonμμ²μ λ°μ μ μλ€
app.use(morgan("dev"));
// μ€λ₯μ¬νμ ν°λ―Έλ λ΄μ λνλ΄κ² ν΄μ€λ€
const express = require('express')
const app = express()
app.get('/', (req, res, next) => {
next()
}, (req, res) => {
res.send('Hello');
});
app.listen({ port, host }),
async () => {
try {
await console.log(
`Server is running on port ${port}`
);
} catch (err) {
await console.log(`${err}`);
}
};
next ν¨μλ λ€μ μ½λ°± ν¨μλ‘ λμ΄κ° μ μκ² λμμ€λ€
next λ΄μ νλΌλ―Έν°κ° μ‘΄μ¬νλ©΄ μλ¬κ° λ°μνλ€
nextλ₯Ό μ΄μ©νμ¬ λ―Έλ€μ¨μ΄λ₯Ό μ‘°μν μ μλ€
dotenv
λ₯Ό μ΄μ©νμ¬ μ¨κΈ΄ νμΌ(.env)μ νκ²½λ³μλ₯Ό μ μ₯νμ¬ λλ¬λμ§ μκ² νλ€
require("dotenv").config();
// .envμ μ μ₯λμ΄ μλ νκ²½λ³μλ
// process.env.{νκ²½λ³μ}λ‘ λΆλ¬μ¬ μ μλ€
const path = require('path')
// νμ¬ μ€νμ€μΈ νμΌ κ²½λ‘
__filename;
// νμ¬ μ€νμ€μΈ λλ ν 리
__dirname;
// κ²½λ‘ μ°κ²°
path.join(__dirname, '/test')
// μλμ μΈ κ²½λ‘λ‘ μ°κ²°.
path.resolve('/controllers', './user')
// κ²½λ‘μ ν΄λΉνλ μμ±μ κ°μ Έμ¨λ€.
path.parse(root, dir, base, ext, name)