1. node.js

官网:
https://nodejs.org/en/

http://nodejs.cn/

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。

后端流行语言:
java #C node.js

验证版本:
node -v或--version
npm -v或--version或--v或-version

js组成:
1、DOM
2、BOM
3、ECMAScript

node文件的命名:
不能用:node.js 或 nodejs.js

node 用来写服务器

http 的端口:80
https 的端口:433

创建服务器:3步

1.引入模块
2.创建服务
3.监听端口

readFile 异步读取文件(有回调函数)
readFileSync 同步读取文件(无回调函数)

ajax:Asynchronous JavaScript and XML

异常处理try...catch

try{
//有可能出错的代码
}catch(e){//error
//补救的代码 或 提示信息
}

fs.readFile("地址、路径"[,编码],回调函数(err,data){...});
fs.readFileSync("地址、路径"[,编码]);
Buffer对象

utf-8/utf8/data+""/data.toString();

exp:创建服务器:
//1.引入模块
var http = require("http");
var fs = require("fs");

//2.创建服务
var server = http.createServer(function(req,res){
    var url = req.url;
    console.log("url:",url);

    fs.readFile("www"+url,function(err,data){
        if (err) {
            res.end("404");
        }else{
            res.end(data);
        }
    });
});

//3.监听端口
server.listen(9000,function(){
    console.log("服务器已开启:http://localhost:9000");
});

服务器运行:
1.打开服务器:
image
2.浏览器访问:
image
3.服务器响应:
image

登录注册

user.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            var $oUser = $("#username");
            var $oPass = $("#pass");
            var $oLogin = $("#login");
            var $oReg = $("#reg");
            
            $oLogin.click(function(){
                $.ajax({
                    url:"/login",
                    data:{
                        user:$oUser.val(),
                        pass:$oPass.val()
                    },
                    dataType:"json",
                    success:function(json){
                        console.log(json);
                    }
                    
                });
            });
            $oReg.click(function(){
                $.ajax({
                    url:"/reg",
                    data:{
                        user:$oUser.val(),
                        pass:$oPass.val()
                    },
                    dataType:"json",
                    success:function(json){
                        console.log(json);
                    }
                    
                });
            }); 
        });
    </script>
    <body>
        用户名:<input id = "username" type="text" value="aaa"/><br />
        密码: <input id ="pass" type="text" value="123"/><br />
        <input id = "login" type="button" value="登录"/>
        <input id = "reg" type="button" value="注册"/>
        
    </body>
</html>

user.js

var http = require("http");
var fs = require("fs");
var users = {aaa:123}; 
var server = http.createServer(function(req,res){
    var url = req.url;
    console.log("url:",url);
    var GET = {};
    
    if(url.indexOf("?") != -1){//接口
        var arr1 = url.split("?");
        url = arr1[0];
        var arr2 = arr1[1].split("&");
        for(var i = 0; i < arr2.length; i++){
            var arr3 = arr2[i].split("=");
            GET[arr3[0]] = arr3[1];
        }
        console.log("url:",url,"GET:",GET);
        
        if(url == "/login"){
            var username = GET.user;
            var password = GET.pass;
            if(!users[username]){
                res.end('{"error":0,"msg":"用户名或者密码不正确"}');
            }else{
                if(users[username] == password){
                    res.end('{"error":0,"msg":"登录成功"}');
                }else{
                    res.end('{"error":0,"msg":"用户名或者密码不正确"}');
                }
            }
        }else if(url == "/reg"){
            var username = GET.user;
            var password = GET.pass;
            /*res.end('{"error":1,"msg":"reg"}');*/
            if(users[username]){
                res.end('{"error":1,"msg":"用户名存在"}');
            }else{
                users[username] = password;
                res.end('{"error":1,"msg":"注册成功"}');
            }   
        }
        
    }else{
        fs.readFile("www"+url,function(err,data){//文件
            if(err){
                res.end("404");
            }else{
                res.end(data);
            }
        })
    }
});

server.listen(9000,function(){
    console.log("服务器已打开");
})

user2.js:引入url模块直接获取json对象

var http = require("http");
var fs = require("fs");
var modUrl = require("url");
var users = {aaa:123};
var server = http.createServer(function(req,res){
    var url = req.url;
    console.log("url:",url);
    
    var GET = {};
    var urlObj = modUrl.parse(url,true);
    url = urlObj.pathname;  
    GET = urlObj.query; 

    if(url == "/login"){
        var username = GET.user;
        var password = GET.pass;
        if(!users[username]){
            res.end('{"error":0,"msg":"账号或密码输入错误!"}');
        }else{
            if(users[username] == password){
                res.end('{"error":0,"msg":"输入正确"}');
            }else{
                res.end('{"error":0,"msg":"账号或密码输入错误!"}');
            }
        }
    }else if(url == "/reg"){
        var username = GET.user;
        var password = GET.pass;
        if(users[username]){
            res.end('{"error":1,"msg":"用户名已存在,请重新输入"}');
        }else{
            users[username] = password;
            res.end('{"error":1,"msg":"注册正确"}');
        }       
    }else{
        fs.readFile("www" + url,function(err,data){
            if(err){
                res.end("404");
            }else{
                res.end(data);
            }
        })
    }
});
server.listen(9000);

运行效果:

image

image

猜你喜欢

转载自www.cnblogs.com/zhongchao666/p/9285520.html
今日推荐