前言

node.js是什么本来应该是放在学习之后做的总结,但是在学习一门新语言或新的知识之前,还是应该对其有个大体上的了解,知道她是什么?她适用于哪些应用场景?她的优点及缺点?大体上弄清楚这些之后可以对其有个整体上的把握,通过越来越深入的学习这些疑问会得到解答。

一、node.js是什么?

node.js 是一个基于 Chrome V8 引擎的 JavaScirpt 运行环境。

二、node使用场景

' Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。当前的服务器程序有什么问题?我们来做个数学题。在 Java 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。当然,这会增加服务器成本、流量成本和人工成本等成本。除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。鉴于上述所有原因,整个 Web 应用程序架构(包括流量、处理器速度和内存速度)中的瓶颈是:服务器能够处理的并发连接的最大数量。

Node 解决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。'

上述内容引自:https://www.ibm.com/developerworks/cn/opensource/os-nodejs/

总结一下就是node通过更改连接到服务器的方式,可以处理高并发任务。

三、优点及缺点

优点:Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,异步编程,使其轻量又高效。

缺点:单进程,单线程,只支持单核cpu,不能充分的利用多核cpu服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

四、基本使用

require()引入模块,返回一个模块对象;

module.exports()或者exports() 导出一个对象;

问题:module.exports 与 exports 有什么区别?
一开始两者指向同一个空间,如果给两者分别赋值(指向不同的对象的时候),优先导出module.exports这个对象,使用时最好使用module.exports。

从下面的测试可以看出优先导出module.exports;

NodeJS简介-node.js是什么?相关推荐

  1. Node.js「一」—— Node.js 简介 / Node.js 模块 / 包 与 NPM

    本文为 Node.js 系列笔记第一篇.文章参考:nodejs 教程 -- 大地:<深入浅出 Node.js>:阮一峰 nodejs 博客 文章目录 一.Node 简介 1. 简单介绍 2 ...

  2. Node.js与Express4安装与配置

    Nodejs简介 Node.js 基于 Chrome JavaScript 运行环境,用于便捷地搭建快速.可扩展的网络应用. 它使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效, 非常适合 ...

  3. Nodejs简介以及Windows上安装Nodejs

    NodeJS简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境. Node.js使用了一个事件驱动.非阻塞时I/O的模型,使其轻量又高效. Node.js的包管理器,是 ...

  4. 【Nodejs篇一】Node js 简介

    一.Node.js简介 Node.js 不是一种独立的语言,Node.js 也不是一个 JavaScript 框架,.Node.js 是一个让 JavaScript 运行在服务端的开发平台.他跳过了h ...

  5. node js fork php,Node.js中execFile,spawn,exec和fork简介

    Node.js中execFile,spawn,exec和fork简介 Node.js子流程child_process模块提供四种不同方法执行外部应用: 所有这些都是异步,调用这些方法会返回一个对象,这 ...

  6. 视频教程-20年Nodejs教程零基础入门到项目实战前端视频教程-Node.js

    20年Nodejs教程零基础入门到项目实战前端视频教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务 ...

  7. 拥抱Node.js 8.0,N-API入门极简例子

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. N-API简介 Node.js 8.0 在2017年6月份发布, ...

  8. node.js(一)

    2019独角兽企业重金招聘Python工程师标准>>> 1.简介 Node.js is a platform built on Chrome's JavaScript runtime ...

  9. 拥抱 Node.js 8.0,N-API 入门极简例子

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. N-API简介 Node.js 8.0 在2017年6月份发布, ...

最新文章

  1. 阅读mutate源码学习dplyr
  2. java获取24小时制时间格式_java 日期格式时间24小时制
  3. Word画线条5大技巧,简单实用!
  4. AtCoder Beginner Contest 194 F - Digits Paradise in Hexadecimal 数位dp
  5. 计算平面坐标某点(x,y)与原点(0,0)的角度
  6. 软件工程项目之摄影App
  7. mysql导数据出指定数量_mysql导出指定数据或部份数据的方法
  8. java修改ldap用户密码_LDAP 用户更改自己的密码
  9. Qt工作笔记-使用QFileSystemWatcher监控文件是否改变
  10. Qt工作笔记-QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
  11. 使用Vivado保存仿真波形数据并读取
  12. 微软随.NET 4.5发布新REST API框架
  13. selector的使用
  14. Apollo 对表名区分大小写 如何配置MYSQL不区分大小写呢
  15. 空号检测、号码状态查询接口免费测试、精准实时版(支持携号转网查询)
  16. Servlet 容器
  17. 2022年5月4号SSM框架整合学习一:
  18. 网页底部固定版权信息
  19. 当百度也来玩众筹,是否可以为众筹正名?
  20. 简易英文问答系统(glove.6B词向量)

热门文章

  1. VB/VBA的变量,竟还有这些秘密
  2. nohup命令及其输出文件 linux nohup命令详解
  3. java getmethod 无参数_Java getMethod类型参数
  4. mbedtls学习2.mbedtls从0使用指南
  5. Word如何取消打印前自动更新域
  6. input框动态模糊查询,能输入,能选择
  7. 模糊控制matlab算例,matlab模糊逻辑工具箱
  8. 指针:const与指针
  9. 有趣的23000----整理(01)H词根、I词根和J词根
  10. neovim图标显示乱码,utf8字体显示乱码(Windows10和Centos安装nerd-fonts)