Nodejs Express 개인 노트

5641 단어
express 비파 괴성 프레임 워 크
const express=require('express');

let server=express();
server.listen(3000,function () {
    console.log('server start')
})

server.get('/get',(req,res)=>{})
server.post('/post',()=>{})
server.use('/use',()=>{})
//  
server.get(()=>{})      
server.post(()=>{})
server.use(()=>{})

//    
server.get('/get',(req,res)=>{
    res.write('   ');
    res.send({a:12,b:14});
})


미들웨어 - 플러그 인:
1.  -      
2.                   next      

server.use(express.static('www/')   //    

server.use(next)=>{ next(); })
server.get('/get',(next)=>{ next(); })
server.get('/get',()=>{})

response
res.send(any);
res.sendFile(    )      //  
    path.resolve(www/aaa)   //       
res.sendStatus(404)         //   
       => res.writeHeader(404);
             res.write('Not Found');
             res.end();
res.redirect('http://www.baidu.com')    //   
       => res.setHeader('location','http://www.baidu.com');
             res.writeHeader(401);
             res.end();

데이터 교환
get:
    req.query
  post:
    let bodyParser = require('body-parser')
    server.use(bodyParser.urlencoded({extended:false}));
    req.body;
  post:
    const multer=require('multer'); 
    server.use(multer({dest:'upload/'}).any()); 
    req.files;

cookie
1.      
2.    ---4K
3.   ---  、   
    1.   
    2.  

const cookieParser = require('cookie-parser');
server.use(cookieParser('zzzzzzzzz'));

req.cookies                             //  
res.cookie('name','value',options);     //  
//     
req.signedCookies                       //     
res.cookie('test',555,{ signed:true }); //  

session
      
      
  ---       

쿠키 - session 은 도 메 인 을 넘 을 수 없습니다.
    const cookieSession = require('cookie-session');
    server.use(cookieSession({
        keys:['zzzzz','xxxxxx','cccccc'],   //    
        secret:'xxx'                        //    
    }));
    //   
    server.get('/get', (req,res)=> {
    if(!req.session['count']){
        req.session.count=1;
    }else {
        req.session.count++;
    }
        res.send(`    ${req.session.count}     `)
    })

세 션 납치
sess_id  :   
    1.session    ID---   
    2.  

경로: 주소 에 따라 코드 를 호출 합 니 다.
//index.js
    server.use('/aritcle',require('./routes/article'));
    server.use('/user',require('./routes/user'));
    
    server.use((req,res)=>{
        res.send('404   !')
    })
//router/aritcle.js
    const express = require('express');
    const router=express.Router();
    
    router.get('/',()=>{});
    router.get('/:id',(req,res)=>{
        const {id}=req.params;
        console.log(req.params);
        res.send(`${id}    `);
    });
       
    router.post('/:id/comment',()=>{});
    router.use('/aaa',require('./aaa'));
    
    module.exports= router;
//router/aaa.js
    const express = require('express');
    const router=express.Router();
    
    router.get('/a',require('./aaa/a'));
    
    module.exports= router;
//router/aaa/a.js
    module.exports=(req,res)=>{
        res.send('a!')
    }
/user/123123    //     、  SEO 、SPA
    req.params
/user?id=123132
    req.query

서버 렌 더 링
    (  ):html    
      、  、  SEO
    (  ):html    
        、  、   
     :
      url =》   =》html,css,js,img... =>  
    
           

pug 파괴 식 --- 파괴 HTML
      
const pug=require('pug');
pug.renderFile('./template/pug/1.pug',{
    pretty:true,
    name:123,
    a:1,
    b:3,
    arr:[1,2,3,4,5]
});
//template/pug/1.pug
doctype
html
    head
        meat(charset='utf-8')
        link(rel='stylesheet',href='/css/main.css')
        script(src='main.js')
        script.
            window.onload=function (ev) {
                let div=document.getElementById('div1');
                div.onclick=function (ev1) { alert('a'); }
            }
    body
        div.page.main#div1
            ul.list
               each a in arr
                li= a
            p.
                sad
                asd
            span   :
                = name
                = a+b

ejs 비파 괴 식 - HTML 구조 유지
    const ejs=require('ejs');
    ejs.renderFile('./template/ejs/ejs.html',{
        a:1,b:2,str:'  ',header_path:'component/header.html',
    }).then(data=>{
        console.log(data)
    }).catch(err=>{
        console.log(err)
    })
//template/ejs/1.html
    //      
    //     
       //3
       //  <span><span>
       //  
    % for(let s in arr ){%>
        

  • 模块化
    *     ( JS  )      
    1.  :
          ---requireJS-AMD、seaJS-CMD
            CMD---      
                    
            AMD---      
                CMD+  
          ---vue、angular、react
    2.  
        Node    
        exports.a=1;
        exports.b=2;
        module.exports={ a:1,b:2 }
        const mod=require('./mod')  //   、    
    WebPack---      
    

    좋은 웹페이지 즐겨찾기