Node.js 学习笔记(二)

express是nodejs的一个轻量级框架。

express的功能很简单, 功能依赖中间件。

安装:在你的项目文件价里打开cmd窗口,在里面使用npm工具(就是在cmd里输入 npm install express)下载express。
 
用法:
1.创建服务:
var server=express();
2.监听
server.listen(8080);
3.处理请求
server.use('地址',function(req,res){
});
 

express简单示例:

const express= require('express');
var server=express();
// server.use('/',function(req,res){
// use里的第一个参数代表用户请求根目录
// });
server.use('/',function(){
  res.send('abc');
  res.end();
})
server.listen(8080);
结果:

 req与res是经过express封装过的,在保留原生功能的基础下又增强了一些方法。如:res.send(),这个方法可以直接在网页上显示json(原来用于显示的write()方法无法显示json)。

 
监听请求的三种方法:
.get('/',function(req,res){});//接受get方法
.post('/',function(req,res){});//接受post方法
.use('/',function(req,res){}); //get,post都能接受
 
示例:
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form class="" action="http://localhost:8080" method="get">
      <input type="text" name="" value="" placeholder="输入用户名">
      <input type="submit" name="" value="提交">
    </form>
  </body>
</html>
 
node:
const express= require('express');
var server=express();
server.post('/',function(req,res){
  console.log('有post');
});
server.get('/',function(req,res){
  console.log('有get');
})
server.use('/',function(req,res){ // use里的第一个参数代表用户请求根目录
console.log('有use');
  // res.send('abc');
  // res.end();
})
server.listen(8080);
 
中间件:express-static
用法:
server.use(express.static('www'));//设置静态文件目录
上面那行代码的意思是讲静态文件目录设置为根目录。
示例:
  
node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
server.use(expressStatic('./www'));
在地址栏中输入: http://localhost:8080/index.html
 

转跳成功~

——————————————————————————
用express搭建简易用户登录系统
//res.query--->将传入的数据处理成键值对
 
html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="ajax.js" charset="utf-8"></script>
    <script type="text/javascript">
      window.onload=function(){
        var oUser=document.getElementById('user');
        var oPass=document.getElementById('pass');
        var oBtn=document.getElementById('btn1');
 
        oBtn.onclick=function(){
          ajax({
            url:'/login',
            data:{user:oUser.value,pass:oPass.value},
            success:function(str){
              var json=eval('('+str+')');
              if(json.ok){
                alert('登录成功');
              }else{
                alert('失败:'+json.msg);
              }
            },
            error:function(){
              alert('通信失败');
            }
          });
        };
      };
    </script>
  </head>
  <body>
    <div>
      <input type="text" id="user"><br />
      <input type="password" id="pass"><br />
      <input type="button" value="登录" id="btn1" />
    </div>
  </body>
</html>
ajax:
function json2url(json){
    var arr=[];
    for(var name in json){
        arr.push(name+'='+json[name]);
    }
    return arr.join('&');
}
 
function ajax(json){
    json=json || {};
    if(!json.url)return;
    json.data=json.data || {};
    json.type=json.type || 'get';
 
    var timer=null;
 
    if(window.XMLHttpRequest){
        var oAjax=new XMLHttpRequest();
    }else{
        var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
    }
 
    switch(json.type){
        case 'get':
            oAjax.open('GET',json.url+'?'+json2url(json.data),true);
            oAjax.send();
            break;
        case 'post':
            oAjax.open('POST',json.url,true);
            oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            oAjax.send(json2url(json.data));
            break;
    }
 
    oAjax.onreadystatechange=function(){
        if(oAjax.readyState==4){
            clearTimeout(timer);
            if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){
                json.success && json.success(oAjax.responseText);
            }else{
                json.error && json.error(oAjax.status);
            }
        }
    };
}
 
node:
const express= require('express');
const expressStatic=require('express-static');
var server=express();
server.listen(8080);
var users={
  'blue':'123456',
  'zhangsan':'123789',
  'lisi':'111'
}
server.get('/login',function(req,res){
  var user=req.query['user'];
  var pass=req.query['pass'];
  if(users[user]==null){ //键值对
    res.send({ok:false,msg:'此用户不存在'});
  }else{
    if(users[user]!=pass){
      res.send({ok:false,msg:'密码错了'});
    }else{
      res.send({ok:true,msg:'成功'});
    }
  }
})
server.use(expressStatic('./www'));
 

猜你喜欢

转载自www.cnblogs.com/BlackFungus/p/9153595.html