zoukankan      html  css  js  c++  java
  • 1. node.js 认识 (一)

    官网: (下载安装nodejs)
    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

  • 相关阅读:
    Linux_KVM虚拟机
    Linux_KVM虚拟机
    Python_编程特色
    Python_编程特色
    Linux_进程管理&计划任务
    Linux_进程管理&计划任务
    Linux_系统破坏性修复实验
    Linux_系统破坏性修复实验
    Linux_Shell基础
    Confluence 6 的高级 Crowd 设置
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9285520.html
Copyright © 2011-2022 走看看