node.js2020.08.20

node.js的简单使用

一,node.js的简介

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 发布于2009年5月,由Ryan Dahl开发。
Node.js 不是一个 JavaScript 框架,是一个让 JavaScript 运行在 服务端 的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 使用了单线程模型,执行速度快,但耗内存多(百万级并发测试,未优化情况下1M的连接,消耗16G的内存) 。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。

二,node.js的优缺点

(1)优点:

  • 高并发(最重要的优点);

  • 适合I/O密集型应用。

  • (2)缺点:

  • 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大 循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;

  • 解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起。

  • 只支持单核CPU,不能充分利用CPU;
    可靠性低,一旦代码某个环节崩溃,整个系统都崩溃。原因:单进程,单线程。
    解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
    ( 2)开多个进程监听同一个端口,使用cluster模块;

  • 开源组件库质量参差不齐,更新快,向下不兼容;

  • Debug不方便,错误没有stack trace。

三,创建一个服务器

let http = require("http");//引入http模块

var server= http.createServer((req,res)=>{
         //创建服务器
        res.writeHead(200,{'Content-Type':'text/html ; charset=utf-8'})
        //格式的控制
        res.write("hellow nodejs");
        res.end;
});

server.listen(8888);//端口号8888


可以在终端中用node 文件名 运行

四,阻塞与非阻塞

let fs = require("fs");

console.log("开始点餐....")
for(let i = 0; i < 100000000; i++);
console.log("循环完毕");

// 阻塞:同步
let result = fs.readFileSync("./file/a.txt");

console.log(result.toString());
//转换为字符串不然得到的就是二进制的编码

console.log("结束,下一个")

注意:阻塞就是同步的象征 必须要排队 前一个程序没有执行完毕 后面的只可以等待着
console.log(result.toString());输出字符串 不然就是你看不懂的二进制编码
非阻塞 我就不说了 同理可以推出 非阻塞就是服务器一直接受请求 谁的请求完成了 就返回结果 返回的结果没有先后 就看是谁先处理完毕。

五,事件驱动

//JS监听事件 btn.onclick = function("click", function(event){})
// JS触发事件:按钮被点击

let events = require("events");

// 创建EventEmitter对象
let eventEmitter = new events.EventEmitter();

// 绑定connect事件:当connect事件被触发时,回调函数被执行
eventEmitter.on("connect", function(){
    console.log("连接成功");

    // 触发事件
    eventEmitter.emit("getData");
});

// 绑定getData事件
eventEmitter.on("getData", function(){
    console.log("接收了数据")
});

// 触发connect事件
eventEmitter.emit("connect");

注意:node.js下面的有很多事件 和事件触发 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值