-
nodejs, Vue파이썬 2022. 6. 20. 10:49728x90


ejs-EJS는 Embedded JavaScript templating의 약어로서, 자바스크립트로 HTML 마크업을 생성할 수 있는 간단한 템플릿 언어입니다.
(java개발자라면 익숙한 JSP와 동일한 역할을 한다고 보시면 됩니다.)
var bodyParser = require('body-parser'); var express = require('express'); var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended : false })); app.set('view engine','ejs'); // 1 app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { res.send('Hello World!'); }); app.get('/hello', function (req, res) { var a="홍길동"; var b=["홍길동","전우치","이순신"]; var c=[ {"e_id":'1',"e_name":'1',"sex":'1',"addr":'1'}, {"e_id":'2',"e_name":'2',"sex":'2',"addr":'2'} ]; res.render('hello',{a:a,b:b,c:c}); }); app.get('/para', function (req, res) { var a = req.param('a'); res.send('para:' + a); }); app.post('/post', function (req, res) { var body = req.body; var a = body.a; res.send('post:'+a); }); app.listen(5000, function () { console.log('Listening on port 5000!'); });<html> <head> <title>title</title> </head> <body> <%=a %><br> <%for(var i=0; i< b.length; i++){%> <%=b[i]%></br> <%}%> <%for(var i=0; i< c.length; i++){%> <%=c[i].e_id%><%=c[i].e_name%><%=c[i].sex%><%=c[i].addr%></br> <%}%> </body> </html>

<app2.js>
var bodyParser = require('body-parser'); var express = require('express'); var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended : false })); app.set('view engine','ejs'); // 1 app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { res.send('Hello World!'); }); app.get('/hello', function (req, res) { var a = "홍길동"; var b = ["홍길동","전우치","이순신"]; var c = [ {'e_id':'1','e_name':'1','sex':'1','addr':'1'}, {'e_id':'2','e_name':'2','sex':'2','addr':'2'}, ]; res.render('hello',{a:a,b:b,c:c}); }); app.get('/para', function (req, res) { var a = req.param('a'); res.send('para:' + a); }); app.post('/post', function (req, res) { var body = req.body; var a = body.a; res.send('post:'+a); }); app.listen(5000, function () { console.log('Listening on port 5000!'); });<heeo.ejs>
<html> <head> <title>title</title> <script src="jquery-3.6.0.js"></script> <script> function myinit(){ $("#it").val("good evening"); } </script> </head> <body onload="myinit()"> <input type="text" id="it" value="good moring" /> <br/> <%=a%><br/> <% for(var i = 0; i < b.length; i++) {%> <%= b[i] %><br/> <% } %> <% for(var i = 0; i < c.length; i++) {%> <%= c[i].e_id %><%= c[i].e_name %><%= c[i].sex %><%= c[i].addr %><br/> <% } %> </body> </html>
node.js cors설정


<app3.js>
var DaoEmp = require('./dao_emp.js'); var express = require('express'); var cors =require("cors"); var bodyParser = require('body-parser'); var app = express(); var de= new DaoEmp(); app.use(cors()); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended : false })); app.set('view engine','ejs'); // 1 app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { res.render('emp'); }); app.post('/emp.ajax', function (req, res) { res.json({'e_id':'1'}); }); app.post('/emp_list.ajax', function (req, res) { var mylist = de.myselects(); res.json(mylist); }); app.post('/emp_one.ajax', function (req, res) { var body =req.body; var e_id =body.e_id; var emp = de.myselect(e_id); res.json(emp); }); app.post('/emp_add.ajax', function (req, res) { var body = req.body; var e_id = body.e_id; var e_name = body.e_name; var sex = body.sex; var addr = body.addr; var cnt = -1; try { cnt = de.myinsert(e_id, e_name, sex, addr); } catch (err) { } res.json({'cnt':cnt}); }); app.post('/emp_mod.ajax', function (req, res) { var body = req.body; var e_id = body.e_id; var e_name = body.e_name; var sex = body.sex; var addr = body.addr; var cnt = -1; try { cnt = de.myupdate(e_id, e_name, sex, addr); } catch (err) { } res.json({'cnt':cnt}); }); app.post('/emp_del.ajax', function (req, res) { var body = req.body; var e_id = body.e_id; var cnt = -1; try { cnt = de.mydelete(e_id); } catch (err) { } res.json({'cnt':cnt}); }); app.listen(3000, function () { console.log('Listening on port 3000!'); });<dao_emp.js>
const mysql = require('sync-mysql'); class DaoEmp{ constructor() { this.conn = new mysql({ host: 'localhost', user: 'root', password: 'python', database: 'python', port:3305 }); } myselects(){ let result = this.conn.query('SELECT * from emp'); return result } myselect(e_id){ let sql = ` SELECT e_id,e_name,sex,addr from emp where e_id='${e_id}' `; let result = this.conn.query(sql); return result[0] } myinsert(e_id,e_name,sex,addr){ let sql = ` INSERT INTO emp (e_id,e_name,sex,addr) VALUES ('${e_id}','${e_name}','${sex}','${addr}') `; let result = this.conn.query(sql); return result.affectedRows; } myupdate(e_id,e_name,sex,addr){ let sql = ` update emp set e_name = '${e_name}', sex = '${sex}', addr = '${addr}' where e_id = '${e_id}' `; let result = this.conn.query(sql); return result.affectedRows; } mydelete(e_id){ let sql = ` DELETE FROM EMP WHERE e_id = '${e_id}' `; let result = this.conn.query(sql); return result.affectedRows; } } module.exports = DaoEmp;
=> localhost 접속 가능
Vue
GitHub - africalib/studies 여기코드 참고


<database.js>
const mariadb = require('mariadb'); const pool = mariadb.createPool({ host: '127.0.0.1', user: 'root', password: 'python', connectionLimit: 5, database: 'python', port:3305 }); module.exports = { async run(query, params) { return new Promise((resolve, reject) => { pool.getConnection() .then(conn => { conn.query(query, params) .then((rows) => { resolve(rows); conn.end(); // (필수) connection 종료 }) .catch(err => { console.log(err); conn.end(); // (필수) connection 종료 reject(err); }) }).catch(err => { //not connected console.log(err); reject(err); }); }); } }<api-sercer.js>
const express = require('express') const app = express() const port = 3000 const bodyParser = require("body-parser"); const database = require("./database"); app.use(bodyParser.json()); app.get('/api/memos', async (req, res) => { const result = await database.run("SELECT * FROM memos"); res.send(result) }); app.post("/api/memos", async (req, res) => { await database.run(`INSERT INTO memos (content) VALUES (?)`, [req.body.content]); const result = await database.run("SELECT * FROM memos"); res.send(result); }); app.put("/api/memos/:id", async(req, res) => { await database.run(`UPDATE memos SET content = ? WHERE id = ?`, [req.body.content, req.params.id]); const result = await database.run("SELECT * FROM memos"); res.send(result); }); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) });


run : 여기에 있는거 실행해라




728x90'파이썬' 카테고리의 다른 글
vuejs, nodejs, mysql (0) 2022.06.17 Crawling 2 , fast (8) 2022.06.16 Python Flask CORS ,Crawling (0) 2022.06.14 Flask에서 Ajax ,axios예제 (0) 2022.06.13 pymysql -22.06.08-22.06.09 (0) 2022.06.09