- 전체
- 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 응용] Node.js | MySQL과 연동(mysql모듈) - CRUD 2/2
2023.03.31 20:38
[node.js 응용] Node.js | MySQL과 연동(mysql모듈) - CRUD 2/2
DELETE
// 모듈 추출
var express = require('express');
var ejs = require('ejs');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var fs = require('fs');
//서버 생성
var app = express();
var client = mysql.createConnection({
user:'root',
password:'1234',
database:'company'
})
app.use(bodyParser.urlencoded({extended:false}));
app.listen(52273, function(){
console.log('Server running at http://127.0.0.1:52273');
});
//라우터 미들웨어 설정
app.get('/', function(request, response){
//파일 읽기
fs.readFile('list.html', 'utf8', function(error, data){
//데이터베이스 쿼리 실행
client.query('select * from products', function(error, results){
//응답
response.send(ejs.render(data, {
data: results
}));
});
});
});
app.get('/delete/:id', function (request, response) {
//데이터베이스 쿼리 실행
client.query('DELETE FROM products WHERE id=?', [request.params.id], function(){
response.redirect('/');
})
});
app.get('/insert', function (request, response) { });
app.post('/insert', function (request, response) { });
app.get('/edit/:id', function (request, response) { });
app.post('/edit/:id', function (request, response) { });
DELETE 버튼 누르면 DB에서까지 삭제됨.
INSERT
// 모듈 추출
var express = require('express');
var ejs = require('ejs');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var fs = require('fs');
//서버 생성
var app = express();
var client = mysql.createConnection({
user:'root',
password:'1234',
database:'company'
})
app.use(bodyParser.urlencoded({extended:false}));
app.listen(52273, function(){
console.log('Server running at http://127.0.0.1:52273');
});
//라우터 미들웨어 설정
app.get('/', function(request, response){
//파일 읽기
fs.readFile('list.html', 'utf8', function(error, data){
//데이터베이스 쿼리 실행
client.query('select * from products', function(error, results){
//응답
response.send(ejs.render(data, {
data: results
}));
});
});
});
app.get('/delete/:id', function (request, response) {
//데이터베이스 쿼리 실행
client.query('DELETE FROM products WHERE id=?', [request.params.id], function(){
response.redirect('/');
})
});
app.get('/insert', function (request, response) {
fs.readFile('insert.html', 'utf8', function(error, data){
//응답
response.send(data);
})
});
app.post('/insert', function (request, response) {
var body = request.body;
client.query('insert into products (name, modelnumber, series) values(?, ?, ?)', [
body.name, body.modelnumber, body.series
], function(){
response.redirect('/');
})
});
app.get('/edit/:id', function (request, response) { });
app.post('/edit/:id', function (request, response) { });
INSERT 입력양식
insert.html
<!DOCTYPE html>
<html>
<head>
<title>Insert Page</title>
</head>
<body>
<h1>Insert Page</h1>
<hr />
<form method="post">
<fieldset>
<legend>INSERT DATA</legend>
<table>
<tr>
<td><label>Name<label></td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td><label>Model Number<label></td>
<td><input type="text" name="modelnumber" /></td>
</tr>
<tr>
<td><label>Series<label></td>
<td><input type="text" name="series" /></td>
</tr>
</table>
<input type="submit" />
</fieldset>
</form>
</body>
</html>
EDIT
// 모듈 추출
var express = require('express');
var ejs = require('ejs');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var fs = require('fs');
//서버 생성
var app = express();
var client = mysql.createConnection({
user:'root',
password:'1234',
database:'company'
})
app.use(bodyParser.urlencoded({extended:false}));
app.listen(52273, function(){
console.log('Server running at http://127.0.0.1:52273');
});
//라우터 미들웨어 설정
app.get('/', function(request, response){
//파일 읽기
fs.readFile('list.html', 'utf8', function(error, data){
//데이터베이스 쿼리 실행
client.query('select * from products', function(error, results){
//응답
response.send(ejs.render(data, {
data: results
}));
});
});
});
app.get('/delete/:id', function (request, response) {
//데이터베이스 쿼리 실행
client.query('DELETE FROM products WHERE id=?', [request.params.id], function(){
response.redirect('/');
})
});
app.get('/insert', function (request, response) {
fs.readFile('insert.html', 'utf8', function(error, data){
//응답
response.send(data);
})
});
app.post('/insert', function (request, response) {
var body = request.body;
client.query('insert into products (name, modelnumber, series) values(?, ?, ?)', [
body.name, body.modelnumber, body.series
], function(){
response.redirect('/');
})
});
app.get('/edit/:id', function (request, response) {
// 파일을 읽습니다.
fs.readFile('edit.html', 'utf8', function (error, data) {
// 데이터베이스 쿼리를 실행합니다.
client.query('SELECT * FROM products WHERE id = ?', [
request.params.id
], function (error, result) {
// 응답합니다.
response.send(ejs.render(data, {
data: result[0]
}));
});
});
});
app.post('/edit/:id', function (request, response) {
// 변수를 선언합니다.
var body = request.body
// 데이터베이스 쿼리를 실행합니다.
client.query('UPDATE products SET name=?, modelnumber=?, series=? WHERE id=?', [
body.name, body.modelnumber, body.series, request.params.id
], function () {
// 응답합니다.
response.redirect('/');
});
});
edit.html
<!DOCTYPE html>
<html>
<head>
<title>Edit Page</title>
</head>
<body>
<h1>Edit Page</h1>
<hr />
<form method="post">
<fieldset>
<legend>Edit Data</legend>
<table>
<tr>
<td><label>Id<label></td>
<td><input type="text" name="id" value="<%= data.id %>" disabled/></td>
</tr>
<tr>
<td><label>Name<label></td>
<td><input type="text" name="name" value="<%= data.name %>" /></td>
</tr>
<tr>
<td><label>Model Number<label></td>
<td><input type="text" name="modelnumber" value="<%= data.modelnumber %>" /></td>
</tr>
<tr>
<td><label>Series<label></td>
<td><input type="text" name="series" value="<%= data.series %>" /></td>
</tr>
</table>
<input type="submit" />
</fieldset>
</form>
</body>
</html>
[출처] https://velog.io/@virtualplastic/Node.js-MySQL%EA%B3%BC-%EC%97%B0%EB%8F%99mysql%EB%AA%A8%EB%93%88-CRUD-2n
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 8 | 제로보드 XE의 최근 게시글 5개를 DB에서 직접 조회 | 졸리운_곰 | 2020.08.04 | 456 |
| 7 | python 으로 XE mysql 쿼리로 자동 게시물 등록하기 | 졸리운_곰 | 2020.03.03 | 448 |
| 6 | [WP]외부 게시판을 IFRAME으로 넣기 | 졸리운_곰 | 2019.01.30 | 533 |
| 5 | XE(제로보드) 게시판 내 스크립트 사용하기 | 가을의곰 | 2017.06.18 | 735 |
| 4 | XE 새 템플릿 문법으로 원하는 위치(head, body)에 JS 선언하기. | 가을의곰 | 2017.06.18 | 308 |
| 3 | 예제를 통해 쉽게 읽어보는 XE모듈개발 시작하기 | 졸리운_곰 | 2016.05.10 | 586 |
| 2 | [시니시즘] 비회원에게 파일 다운로드 권한이 없다고 뜰 때 | 졸리운_곰 | 2016.04.14 | 767 |
| 1 | XE 템플릿 구문 | 졸리운_곰 | 2015.05.12 | 1136 |

