学习nodejs

来源:互联网 发布:迅雷玩客云抢购软件 编辑:程序博客网 时间:2024/05/19 05:34
//首选学习下 nodejs 核心方法 事件驱动//个人的理解 _ Nodejs 说道性能如何高, 处理并发能力如何强,主要的核心就在与 API 处理方式全部均带有异步方法// 异步 是处理繁琐事物的最佳方法 , 简单来说// 前台秘书负责接待访客,为访客预约经理. 如果一个访客到达经理有事物在身 , 同步方式也就是让这个访客等待在前台, 后面还需要预约的访客//则需要继续排队直到,前面的访客离开  首先优点: 井然有序 一个接一个慢慢来 ,不易在预约经理核心业务上出现问题,但是前台所能做的事就实在//太少,后面的队伍也完全处于无事可做的状态 , 而异步程序的设计和处理思路就完全解决和避免了这样的浪费, 接待->记录->请访客将电话号码留下,//等待经理忙过了给这个访客电话,访客在规定时间到达那么业务完成,如果访客接到通知超过时间,则给其他访客电话,这样的机制完美的解决了,业务堆积造成的资源时间浪费,当然设计思路,业务流程必须合理严谨.//开始测试 引入支持库 | 模块const evenls = require('events'); //小说下const var 区别 const 常量 不可改变,一般把引入的库对象 用const 声明 我是这样理解//反正 不会去改变 的对象 我觉得用 const 声明 变量 当然 还是var//创建一个 事件处理 程序 其实就是注册到 nodejs 的那个事件回调 处理的大循环中 nodejs 内核 会调用这个地址驱动这个地址注册的方法实现// 调用evenls中的EventEmitter方式 注册一个回调事件//const Testevent = new evenls.EventEmitter();//////var 方法1 = function () {//    console.log('连接成功。');//    console.time('tick')//    //发出 事件 被触发的通知////    Testevent.emit('function_1',{objName:'传过去试试!'})//}////// 注册一个 名字叫call_1的事件给 func1//Testevent.on('call_1', 方法1);////////Testevent.on('function_1',function(data){//    console.timeEnd('tick');//    console.log(typeof (data));//    console.log('function_1方法被调用!',data);//})//////触发 call_1 这个事件  这个事件注册上的方法1 会被调用//Testevent.emit('call_1');var s = false ? false : 3;console.log(s)const http = require('http');//贴近实际运用的 场景var  httpserver = new http.createServer(function(request,response){    response.writeHead(200,'s',{'Content-Type':'text/html;charset=utf-8'})    var ip = request.connection.remoteAddress ? request.socket.remoteAddress : request.connection.socket.remoteAddress;    response.end(ip);});function getClientIp(req) {    return req.headers['x-forwarded-for'] ||        req.connection.remoteAddress ||        req.socket.remoteAddress ||        req.connection.socket.remoteAddress;};// 监听事件的处理方法var requestlisten = function (request,response){    response.end('请求我不理你!');};httpserver.listen(3001,'127.0.0.1',function(){    const host = httpserver.address().address    const port = httpserver.address().port    console.log("应用实例,访问地址为 http://%s:%s", host, port)})