阅读 38

NodeJS初步学习

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端口正在启动!!!");
});
复制代码
文章分类
前端
文章标签