- 전체
- HTML
- Web Design (웹디자인)
- XE 응용 개발
- wordpress plugin dev
- Javascript & JavaScript Application
- MEAN Stack : full stack javascript
- angular js & ionic framework
- bootstrap
- WebGL, Three.js and Babylon.js
- restful api design
- mobile web
- node.js 응용
- Cloud Service 응용
- 웹 어셈블리 개발 [WASM, WebAssembly]
- 마이크로서비스, MSA (microservice architecture)
- WebGL / WebGPU
- next.js 개발
- micro frontend (마이크로프론트앤드)
- 전자상거래/쇼핑몰
- 서버 클라우드 (aws, azure, google)
node.js 응용 [node.js 응용] Next.js : Next.js14에 Mysql연결하기
2024.03.03 15:43
[node.js 응용] Next.js : Next.js14에 Mysql연결하기
프레임워크 : next.js14 + TS
db 설정 참고 repo
https://github.com/zinkkii/NextBoard/blob/master/app/lib/db.jsx
환경변수 설정
https://nextjs.org/docs/app/api-reference/next-config-js/env
1. 설치
npm i --save-dev @types/mysql
npm i mysql2
2. 코드
나는 Next.js 14버전을 사용중이라 app/_lib/db.tsx경로로 db파일을 만들었다. 환경변수는 .env.local로 만들어줬다. 그리고 .env.local을 .gitignore에도 추가했다. (공식문서 참조)
//app/_lib/db.tsx
import { createPool } from 'mysql2'
const pool = createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
port: 3306,
})
pool.getConnection((err, conn) => {
if (err) console.log('Error connecting to db...')
else console.log('Connected to db...!')
conn.release()
})
const executeQuery = (query, arrParams) => {
return new Promise((resolve, reject) => {
try {
pool.query(query, arrParams, (err, data) => {
if (err) {
console.log('Error in executing the query')
reject(err)
}
console.log('------db.jsx------')
//console.log(data)
resolve(data)
})
} catch (err) {
reject(err)
}
})
}
export default executeQuery
그런 다음 홈화면에서 쿼리를 실행시키고 받은 데이터를 뿌려줬다.
//app/page.tsx
import executeQuery from './_lib/db.tsx'
export default async function Home() {
const sql = 'select * from bridge.user'
const data = await executeQuery(sql, '')
const getdata = JSON.parse(JSON.stringify(data))
console.log(getdata)
return (
<div>
{getdata.map((data, i) => {
return (
<>
<p>
{data.id} {data.username}
</p>
</>
)
})}
</div>
)
}
[출처] https://velog.io/@j_wisdom_h/Next.js%EC%97%90-Mysql%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 1 |
[WebGL/WebGPU] 파이어폭스에서 WebGPU 맛보기 A Taste of WebGPU in Firefox
| 졸리운_곰 | 2021.05.02 | 500 |

