ejs 사용하기
ejs 문법
<% if문 %> <% for문 %>
<%= 변수 %>
<%- include(ejs 파일 주소) %>
주의점
<% %> 이런 괄호의 열고 닫음은 반드시 한 줄에서 일어나야 됨
ex)
<% for () { %>
<%= name %>
<% } %>
views 폴더 안에 ejs 파일들을 생성하고
사용할 때는
app.set("view engine", "ejs");
views 폴더의 경로가 바뀌었을 때(다른 폴더 안에 views 폴더가 있을 때)는 경로를 지정해 줘야된다
app.set('views', path.join(__dirname, '/public/views'));
path.join을 사용하려면 path 모듈 설치
res.render를 통해 ejs 파일 반환, <%= name %>을 통해 변수를 보여줄 때는 json 형식으로 변수에 값 넣어주기
router.get('/', (req, res) => {
res.render('index', {name: 'js'});
})
req.body
var { id, pw, username, email } = req.body;
이런 식으로 body 값을 받아서 저장할 때
Content-Type이 applicatoin/json일 때의 데이터를 파싱할 때는
app.use(express.json({ extended: false }));
Content-Type이 application/x-www-form-urlencoded일 때의 데이터를 파싱할 때는
app.use(express.urlencoded({ extended: false }));
추가하기
(route하는 코드 위에 써야됨)
.env
환경변수를 사용할 때는
require("dotenv").config({ path: __dirname + "/src/config/.env" });
추가하기
경로는 알맞게
dotenv 모듈 설치해야 됨
module.exports
객체지향 프로그래밍을 위해 코드를 모듈화할 때
exports.ex = function() {}
var ex = async() => {}
module.exports = ex;
exports와 module.exports는 같은 객체를 참조하므로 둘 중에 아무거나 사용해도 무방하다
모듈화한 코드를 다른 파일에서 사용할 때는 require로 불러서 사용하기
nodejs + mysql2
const mysql = require('mysql2');
const connection = mysql.createConnection({
host : mysql_host,
user : mysql_username,
password : mysql_password,
database : mysql_db
});
connection.execute(query);
나중엔 꼭 mysql2의 createPool을 사용해 db와 연결해 볼 것이다
createConnection으로 db와 연결하면 db와 통신할 때마다 계속 연결해야 하기 때문에 자원 낭비가 심하다.
createPool로 연결하면 db와 연결된 상태가 지속되기 때문에 위의 단점을 해결할 수 있다.
하지만 계속 연결되어 있기 때문에 최대로 연결할 수 있는 개수를 지정해 줘야 되고 한 번 통신을 한 이후에는 release를 해줘야 한다.
'project' 카테고리의 다른 글
| axios Prototype Pollution 1 day 취약점 분석 (0) | 2025.07.23 |
|---|---|
| CVE-2025-27415 1 day 취약점 분석 (0) | 2025.07.08 |
| CVE-2025-26923 (0) | 2025.07.02 |
| CVE-2024-34343 1 day 취약점 분석 (0) | 2025.07.02 |