2022 OSAM ํด์ปคํค ์ฌ์ ์จ๋ผ์ธ ๊ต์ก์์ ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค.
๋ชจ๋ฅด๋ ๋ด์ฉ๋ง ๋ฐ์ทํ์ฌ ์ ๋ฆฌํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ด์ฉ์ ์ฐ๊ฒฐ์ฑ์ด ๋ถ์กฑํ ์ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.
npm install express
Web Server์ WAS์ ์ฐจ์ด | ๐จ๐ปโ๐ป Tech Interview
const express = require("express");
const path = require("path");
const app = express();
// static ํด๋ : ์ ์ ํ์ผ ๋ชจ์
const publicPath = path.join(__dirname + "./static");
app.use(express.static(publicPath));
// templates ํด๋ : hbs ๋ชจ๋์ ์ด์ฉํ์ฌ ํ
ํ๋ฆฟ html ํ์ผ ์์ฑ
const viewPath = path.join(__dirname + "./templates");
app.set("view engine", "hbs");
app.set("views", viewPath);
app.get("", function(req, res) {
// res.send("Hello World");
res.render("index", {
title: "Hello World",
contents: "Hello World Body"
});
});
app.listen(3000), () => {
console.log("Server is online on port 3000");
});
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<h1>{{contents}}</h1>
</body>
</html>
์ฌ์คโฆ ์ด๊ฑธ ๋ฐฐ์ฐ๊ณ ๋ฒ์ช๋ค. 2๋ ์ ์ ์ํ์ฝ๋ฉ Node.js ๊ฐ์๋ฅผ ๋ฃ๊ณ , Express ์์ด ํ๋ฒ ์นํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ณด์! ๋ผ๋ ์๊ฐ์ผ๋ก ์ง๋ค๊ฐ ํฌ๊ธฐํ ์ ์ด ์์๋ค. ๊ทธ๋ ํฌ๊ธฐํ ์ด์ ๊ฐ ๋ฐ๋ก ์ ์ ํ์ผ์ ์ผ์ผ์ด ์ฐ๊ฒฐ์์ผ์ฃผ๋๊ฒ ๋งค์ฐ ๊ท์ฐฎ์์์๋ค. ๊ทธ๋ ์ด ๊ธฐ๋ฅ์ ์์๋๋ผ๋ฉดโฆ
์๋ฅผ ๋ค์ด, localhost:3000/images/cat.jpg
๋ก ์ ๊ทผํ๋ค๋ฉด, __dirname + static/images/cat.jpg
๋ฅผ ์ฐพ์์ ์๋์ผ๋ก ๋ณด๋ด์ค๋ค.
app.set('view engine', 'hbs')
: hbs
๋ฅผ template engine์ผ๋ก ์ฐ๊ฒ ์ต๋๋ค. app.set('views', viewPath)
: view ํ์ผ์ด ๋ชจ์ฌ์๋ ๊ณณ์ viewPath
์
๋๋ค. // ์์ ํ์ผ์์ ์์ ๋ ๋ถ๋ถ๋ง ์์ฑ
require("isomorphic-fetch");
app.use(express.json());
app.get("/github", async function(req, res) {
const response = await fetch(`https://api.github.com/users/${req.query.user}`);
res.json(await response.json());
});
app.user(express.json());
http://localhost:3000/github?user=yopark
์ ํ์์ผ๋ก ํธ์ถํด์ผ ํ๋ค.๋ฐ์ดํฐ๋ฅผ Table ๋ง๊ณ Document(JSON) ๊ธฐ๋ฐ์ผ๋ก ์ ์ฅํ๋ค.
npm install mongodb
// connect.js
const { MongoClient } = require("mongodb");
const url = "MongoDB์ ๊ฐ์
ํด์ ๊ฐ์ธ url์ ๋ฐ์ผ์ธ์";
const client = new MongoClient(url);
async function main() {
await client.connect();
console.log("Connected successfully to server");
return "done.";
}
main()
.then(console.log) // res => console.log(res)
.catch(console.error)
.finally(() => client.close());
// connect.js
const { MongoClient } = require("mongodb");
const url = "MongoDB์ ๊ฐ์
ํด์ ๊ฐ์ธ url์ ๋ฐ์ผ์ธ์";
const client = new MongoClient(url);
async function main() {
await client.connect();
console.log("Connected successfully to server");
const db = client.db("oss"); // db๋ช
const collection = db.collection("documents"); // table๋ช
const insertResult = await collections.insertMany([
{ a: 1 },
{ a: 2 },
{ a: 3 }
]);
return insertResult;
}
main()
.then(console.log) // res => console.log(res)
.catch(console.error)
.finally(() => client.close());
// ์ ํ์ผ์์ insertMany ํจ์ ๋ถ๋ถ ๋์ ์ฌ์ฉํ๋ฉฐ,
// ๋๋จธ์ง ๋ด์ฉ์ ๋ชจ๋ ๊ฐ๋ค.
const findResult = await collection.find({}).toArray();
console.log("Found documents => ", findResult);
const filteredDocs = await collection.find({ a: 3 }).toArray();
console.log("Found documents filtered by { a: 3 } => ", filteredDocs);
const updateResult = await collection.updateOne({ a: 3}, {$set: { b: 1} });
**$set
์ ๋ฃ์ง ์์ผ๋ฉด document๋ฅผ ํต์งธ๋ก ๋ฐ๊พธ๋ ๊ฒ! ์ฃผ์**$set
์ ์ฌ์ฉํ๋ฉด, ๊ฐ์ ํค๋ ์
๋ฐ์ดํธ๋๊ณ , ์๋ ํค๋ ์ถ๊ฐ๋๋ค.const deleteResult = await collection.deleteMany({ a: 3 });