ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • nodejs, Vue
    파이썬 2022. 6. 20. 10:49
    728x90


    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
Designed by Tistory.