node js基础

作为一个刚接触node js的新手,我在学习的时候将笔记整理在博客上, 一些重要的部分也配有详细的代码,也可能会有不对的地方,(不对的地方大家告诉我,我也会及时更改的)嘻嘻!

node优点:

  • 性能高
  • 跟前台js配合方便
  • js 能用的Node-js也能用

运行 Win+R
命令行中Ctrl+C 终止命令行

  • e:进入E盘 切换盘符
  • cd 改变当前目录
  • node xxx.js 执行程序

tab 快捷补全文件缩略名 (eg:node 1+tab 直接显示 node 1.js)


node JS 服务器
http 协议
request 请求 输入-请求的信息
response 响应 输出-给浏览器的东西(帮助返回东西)


const http=require('http'); //引入http文件 (require 引进nodejs中的http模块)
var server=http.createServer(function(req,res){ //createServer 创建一个服务器 

   switch(req.url){
   	case '/1.html':res.write("11111");break;  //请求localhost:8080/1.html 显示 11111
   	case '/2.html':res.write("22222");break;
   	default:res.write("404");break;
   }
   
   //里面有一个回调函数 function
   res.write('abc'); //向前台写东西
   res.end();  //结束

}); 

//监听--等着
//服务器通过端口来区分 (端口 就是一个数字)
server.listen(8088); //端口号 localhost:8080
//服务器需要一个listen 监听 监听某一个端口(通过8080端口保证可以被别人访问到)
  • createServer 创建一个服务器
  • createServer 里面有一个回调函数 function
  • function 有两个对象 request response
  • 服务器需要一个listen 监听 监听某一个端口

网站小图标 (favicon.ico)


如何来进行文件操作:fs(读取文件,返回文件)

const fs=require('fs');
//readFile(文件名,回调函数)读文件
fs.readFile('aaa.txt',function(err,data){  //错误信息,数据(读到的信息)
   if(err){
   	console.log("0");
   }
   else{
   	console.log("1");
   }
});

//writeFile(文件名,内容,回调函数)写文件
fs.writeFile('aaa.txt','haha',function(err){ 
   console.log(err);
});
  • readFile(文件名,function(err,date){})
  • writeFile(文件名,内容,function(err){})

选择路径打开对应的文件路径

const http=require('http');
const fs=require('fs');

var server=http.createServer(function(req,res){
	//req.url=>'index.html'
	//读取=>'./www/index.html'
	//'./www'+req.url
	var filename='./www'+req.url; 
	fs.readFile(filename,function(err,data){
        if (err) {       	
        	res.write('404');
        }else {       	
        	res.write(data);
        }
        res.end(); //异步 要实现什么时候读取完文件什么时候走 所以end放在里面
	});	
});

server.listen(8080);

在这里说明一下路径的问题
在这里插入图片描述
在这里插入图片描述
(如图:www文件夹内部有1.html页面)

  1. 如图所示 我们创建的服务器,在server.js中创建的服务器 ( 哇,你可别装傻你不知道服务器在哪创建的~)
  2. 在当前路径下进入www文件 (.在当前文件夹内的操作 ..返回上一文件 /进入到同一路径下文件夹的内部)
  3. 所以要通过服务器访问www文件夹下面的1.html (licalhost:端口号./www/1.html)

异步/同步:
异步—— 多个操作可以同进行 ,前一次的操作没完事,后一次也可以开始
同步—— 一次一个


如何接受前台数据请求
数据请求——
前台->form,ajax,jsonp
后台->一样

前台<->后台
http协议联系起来

请求方式:
1.GET 数据在url中(数据在url地址中出现)
2.POST 数据不在url中


GET 数据解析

  1. 自己切
  2. querystring (只能解析这种情况:字符串为:xxx=xx&xxx=xx
//主要解析post数据
querystring.parse(str);  //截切的结果为 eg:{user:'blue',pass:'123456'}

const http=require('http');
const querystring=require('querystring');

http.createServer(function(req,res){
	var GET={};
	if (req.url.indexOf('?')!=-1) {
	
		var arr=req.url.split('?');     //!!
		var url=arr[0];                 //!!
		GET=querystring.parse(arr[1]);  //!!
	}
	else {
         var url=req.url;  //有可能没有数据eg:favicon.ico{}
	}

	console.log(url,GET);  
}).listen(8080);
//结果形式 eg:/aaa { user: '小明', pass: '123456' }
  1. urlLib (字符串为:aaa?xxx=xx&xxx=xx
//主要解析get数据
urlLib.parse(url,true); //用parse的时候给个ture自动解析

pathname   网址部分:’/aaa‘
query      数据部分:{xxx:xx,xxx:xx}

//例子
const http=require('http');
const url1=require('url');
http.createServer(function(req,res){
   var obj=url1.parse(req.url,true);

   var url=obj.pathname;
   var GET=obj.query;
   console.log(url,GET);

}).listen(8080);

POST数据解析

POST 很大——分段发送(若把get比作人的头 post就是人的身体)
分段原因:避免内容过大传输的堵塞,又可能出错减少最大的损失

var http=require('http');
//var querystring=require('querystring');
http.createServer(function(req,res){

  var str='';   //此处用字符串 接受所有的数据
  
  req.on('data',function(data){  //每次都回传回一个数据data
     str+=data;
  }); //每当date发生时 说明有一段数据到达了
  req.on('end',function(){
  	console.log(str);
  	
  	//var post=querystring.parse(str);
  	//console.log(post);
  }); //end只发生一次,全部数据到达
  
}).listen(8082);//eg:post得到数据的结果  user=123456&pass=123456

(9.25~9.30)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值