nodejs是运行在服务端的js
1.一个简单的后端应用
var _http = require("http");
//引入框架
_http.createServer(function(require,request){
request.writeHead(200,{"Content-type":"text/plain"});
request.end("ok!!!");
//成功访问之后返回的数据是 ok!!!
}).listen(1234);
2.高并发简介
高并发是互联网分布式系统架构必须要考虑的因素之一,它通常是指系统通过处理可以同时处理很多请求,与其相关的指标有响应时间,吞吐量,每秒查询率,并发用户等。
3.事件一
var event = require("events");
var eve = new event.EventEmitter();
eve.on("hello",function(){
console.log("hello!");
});
//这里的事件是自己定义的事件,名字也是自己取的,并且会为这样的一个事件名绑定一个回调函数
//并且用on来绑定事件,用emit来调用事件。
eve.on("bye",function(){
console.log("bye");
});
eve.emit("hello");
eve.emit("bye");
添加计时器并且传参数:
var event = require("events");
var eve = new event.EventEmitter();
eve.on("xx1",function(arg1,arg2){
console.log("hello!",arg1);
});
eve.on("xx1",function(arg1,arg2){
console.log("bye",arg2);
});
console.log("~~~~");
setTimeout(function(){
eve.emit("xx1","dajiahao","zaijian");
},2000);
4.stream的流
流是一个抽行的接口,在nodejs中有好多对象实现了stream接口
stream有四种类型:Readable 可读操作;Writable 可写操作;Duple 可读可写操作;Transform 操作被写入的数据,然后读出结果。
stream流读取数据,实例代码如下:
var file = require("fs");
var data = "";
var input = file.createReadStream("e://markdown1.md");
input.setEncoding("utf8");
input.on("data",function(data1){
data+=data1;
});
input.on("end",function(){
console.log(data);
});
console.log("读取数据完成");
stream流写数据
var file = require("fs");
var data = "我叫赵贺,今年18岁,颜值高,单身";
var input = file.createWriteStream("e://markdown1.md");
input.write(data,"utf8");
input.end();
input.on("finish",function(){
console.log("wancheng");
});
console.log("success!!");
5.get和post请求
-util(是nodejs的工具模块,他有很多的方法)
-util.inspect,用来把对象转为字符串;
-url,是nodehjs的url模块
url.parse 解析url请求之类的东西
get请求,示例代码如下(只是简单的解析url):
var http = require("http");
var url = require("url");
var util = require("util");
http.createServer(function(require,request){
request.writeHead(200,{"Content-type":"text/plain;charset=utf-8"});
// request.end("欢迎访问");
console.log(util.inspect(url.parse(require.url)))
}).listen(1234);
console.log("success!!");
get请求,示例代码如下(拿到url中的参数,并且输出在浏览器页面中):
var http = require("http");
var url = require("url");
var util = require("util");
http.createServer(function(require,request){
request.writeHead(200,{"Content-type":"text/plain;charset=utf-8"});
// request.end("欢迎访问");
var result = url.parse(require.url,true).query;
request.write("姓名:"+result.name);
request.write("\n");
request.write("年龄:"+result.age);
request.end();
}).listen(1234);
console.log("success!!");
6.post请求代码如下:
var http = require("http");
var querystring = require("querystring");
var form="<form method=post>"+
"name:<input type='text' name='name'/>"+"<br/>"+
"age:<input type='text' name='age'/>"+"<br/>"+
"<input type=submit value=提交>"+
"</form>";
http.createServer(function(require,responce){
var data="";
require.on("data",function(_d){
data+=_d;
})
require.on("end",function(){
data = querystring.parse(data);
console.log(data);
responce.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
responce.write(form);
responce.end();
});
}).listen(1111);
7.espress框架
var express = require("express");
// console.log(express);
var app=express();
//http://localhost:1718/123 用浏览器访问这个网站
app.get("/123",function(req,res){
res.send("第一个服务创建成功");
});
//输出在控制台的内容
app.listen(1718,function(){
console.log("1718端口正在启动!!!");
});