NODE.JS(一)

node.js(一):
node.js: node.js 不是js框架,与jQuery不同,不是对js的封装,是js的运行平台(一个运行js的软件),而且是非常高效的平台.
node与JavaScript的关系就像java与Tomcat,node用来运行发布js服务,其中node中运行的js使用的是JavaScript语言的下一代标准ES6(ECMAScript 6.0)进行开发的,本篇文章只是记录node使用及普通js服务的开发运行,在下一篇文章中将进行ES6的学习总结。
js运行平台:
浏览器:浏览器是传统的js运行平台,主要用于前台用户交互,限制了js的应用场景。
node.js:将js剥离出了浏览器,可以在任意的环境中运行(安装有nodejs的平台,作用就像jdk对于java),可以像java达到跨平台的效果。
运行效率:
node.js内置了v8,在V8引擎上运行js,先将js编译成机器码文件,然后再统一的运行机器码文件,运行效率快。

Node.js是借助事件驱动,是非阻塞的IO模型。
Node.js安装:
傻瓜式安装,下载好安装包,下一步下一步即可。
安装完成后,运行cmd, 使用node -v 即可查看版本信息。
运行js代码的两种方式:
node 命令后与浏览器控制台一样,直接输入想要运行的js代码即可执行。
node xxx.js 运行js文件。
js写服务端:
写服务端,需要由服务器(服务器:用来监听服务请求,作出响应)
java中的服务器是tomcat.
js如果想写服务端,也需要一个服务器,这个服务器由Node提供(node自带)。
创建第一个node服务:
1.在当前js文件中引入服务所需的模块
语法:var 引用名 = require(“模块名”);
2.创建接收请求和处理请求动作的函数
function 函数名(req,res){
…..
当处理完成后必须使用res.end();标志处理完成,将响应返回
}
3.创建服务,并且将服务与处理动作函数进行关联(http:引入http模块的引用名),
var 服务名 = http.createServer(处理请求函数名(第2步的函数名));
4.增加服务监听端口,为服务设置端口并监听此端口
服务名.listen(端口);
js服务创建完成后,需要发布到node中,node xx.js
访问服务,没有项目名称,因为服务本身就是项目,服务是通过项目建立的。

响应信息使用res.write(…)进行返回,
可以在一个write中书写html的代码,使用的是ES6语法,
res.write(<html><body><h1>${变量名}</h1></body></html>);
其中 ` 与~ 同一个键;
${变量名}: 直接应用js中定义的变量的值;
ps:要想html代码正常显示,在响应的html代码前不能输出任何信息,在html代码后可输出任意信息。

在访问服务中默认有个/favicon.ico的请求,来获取网页的图标信息,这是服务内置的请求。
Req对象中对应属性:
req.url 访问的路径
req.method 访问请求类型
req.headers 请求头信息
Res对象中对应的函数及属性:
res.writeHead(200,{“content-type”:”text/html”});设置响应头信息(响应格式)
res.write(…);设置响应信息
res.end();响应结束标志,不end无法显示数据
node服务如何接收请求参数:
用到两个模块 url querystring
GET:
1.引入模块
var url = requrie(“url”);
var qs = requrie(“querystring”);
2.获取请求url
var requrl = url.parse(req.url);
3.获取url对象中的query对象
var querydata = url.parse(req.url).query;
4.使用qs对象,将字符串转换成json对象
qs.parse(querydata);
之后便可操作参数。
var http = require(“http”);
var url = require(“url”);
var qs = require(“querystring”);
http.createServer(function(req,res){
console.log(req.url);
console.log(url.parse(req.url));//第一步
console.log(url.parse(req.url).query);//第二步,获取解析url对象里的query属性 a=1&b=2
var data = url.parse(req.url).query;//qs模块,将字符串转换成json对象
console.log(qs.parse(data));
res.write(“Hello”);
res.end();
}).listen(8181);
POST:
POST参数以流的方式提交到服务端,先将数据存储到缓冲区,当缓冲区填满到达阀值就出发data事件,一旦数据读取完毕则出发end事件;
var http = require(“http”);
var url = require(“url”);
var qs = require(“querystring”);
http.createServer(function(req,res){
var data = “”;
req.on(“data”,function(dos){
data += dos;
});
req.on(“end”,function(){
console.log(qs.parse(data));
});
res.write(“Hello”);
res.end();
}).listen(8181);

将解析的json字符串打印到控制台中
res.write(JSON.Stringify(json));

猜你喜欢

转载自blog.csdn.net/sss12345677/article/details/82560278