Node.js 是一个基于Chrome javascript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
Node.js是一个可以快速构建网络服务及应用的平台[2] 。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对Google V8引擎(应用于Google Chrome浏览器)进行了封装。
V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。[3]
例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地处理二进制数据。因此,Node不仅仅简单地使用了V8,还对其进行了优化,使其在各环境下更加给力。
node.js的特点有哪些
1:异步IO
异步相对应的就是不同步,使用异步可以更高的分配资源
在node中绝大多数操作都是异步的方式进行调用,node团队排除万难在底层构建了很多异步io的API,从文件读取到网络请求等,这样的意义在于,在node中我们可以从语言层面很自然的进行并行的io操作,每个调用之间不用多余等待
例如读取两个文件,采用同步的方式会是(操作1+操作2)总时间
而异步则是max(操作1+操作2)
2:事件与回调函数
node选择的是javascript,javascript不仅在前段担任更多职责,在后端同样担任职责,它将前段浏览器中应用广泛而且成熟的时间引入到了后端,配合异步io将时间点暴露给了业务逻辑
案例:node可以在后端创建一个服务器,处理用户发送的请求
相比之下,无论前段还是后端,事件都是常用的
事件的编程方式是轻量级松耦合之关注时间点的,但是在多个异场步任务的场景下,时间之间的相互独立,如何合作将会是一个问题
node中的事件回调是node 的一大特色,他解决了这个问题,回调函数是最好的接受异步调用返回数据的方式,(很多老程序员接受不了这一点),代码的编写顺序与执行顺序并无太大的关系(这也导致了在流程控制方面,不是很好的阅读,所以还是建议尽量写正常代码)
3:单线程处理方式
node保持了javascript在浏览器中单线程的特点,在node中无法享受任何状态,所以不用担心同步问题
但是无法避免的他也有自己的缺点
无法利用多核cpu
产生错误将全体退出程序
4:跨平台
在各个平台下都可以使用
为什么选择 javaScript
javaScript诞生以来位置一直很尴尬,之前基本上没人把它当作一个编程语言(没有很多程序员会为了js花费太多的心思来学习)只是把它当作一个网页小脚本,更多的应用场景在于数据验证(其实这才是最早发布js的用处),但是随着web2.0时代的到来,js已经在网页中发挥出来更多的特色,例如让你的网页更加有动画感
在web2.0时代更多的前段框架被开发者开发出来,最初只是为了解决浏览器之间不兼容性问题,例如jquery,但是随着更多的用户需求在前断出现,js从前段应用出现在了开发应用级别上面,
工具(浏览器兼容性)――组件(功能模块)――框架(功能模块组织)――应用(应用模块组织)
CommonJS让javascript焕发的第二春,他让js在任何地方可以运行起来
js本身的弱点
没有模块系统
标准库比较少――核心库
标准接口--例如数据库连接
包管理系统――自动加载和安装依赖的问额
CommonJS解决了上述所有问题
服务器端js
命令行工具
桌面入行应用程序
CommonJS模块规范
模块引入
require 用来引入模块
模块定义
module代表当前模块对象
exports导出模块

nodeJs基础方法的更多相关文章

  1. [转]Nodejs基础中间件Connect

    Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...

  2. Nodejs基础中间件

    Nodejs基础中间件Connect   http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript ...

  3. Nodejs第一天-{Nodejs基础 深刻理解浏览器 环境变量 基础语法}

    Nodejs第一天 1.什么是Nodejs ​ Nodejs是一个可以运行(解析)ECMAScript的环境; ​ ECMAScript是规定了一些列的语法 ,这些语法想要解析的执行就需要放在某个环境 ...

  4. nodejs 基础篇整合

    nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...

  5. 在同一个Apache服务器软件上部署多个站点的基础方法

    这篇文章主要介绍了Apache中Virtual Host虚拟主机配置及rewrite模块中的重要参数说明,是在同一个Apache服务器软件上部署多个站点的基础方法,需要的朋友可以参考下(http:// ...

  6. CodeBlocks(17.12) 代码调试基础方法&快捷方式

    转载:CodeBlocks(17.12) 代码调试基础方法&快捷方式: https://www.cnblogs.com/DCD112358/p/8998053.html

  7. Python_Mix*re模块基础方法,进阶,正则表达式的使用

    re模块import re 基础方法 findall:匹配所有 ,每一项都是列表中的一个元素,返回的是列表 search只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,通过这个变量的gro ...

  8. RF实现多次失败重跑结果合并的基础方法和优化方法

    实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...

  9. Java基础-方法(method)的应用

    Java基础-方法(method)的应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 方法就是定义在类中,具有特定功能的一段小程序,方法也称为函数(function),方法可以接 ...

随机推荐

  1. iOS开发CoreData的多表关联

    1.多表关联 多表关联,对SQL 数据库的操作,在一张表的数据中可以引用另外一张表里的数据.通过 Entity 实体中的 Relationships 来实现,比起传统的 SQL 数据库来,更加简单. ...

  2. myeclipse14 破解教程

        myeclipse14 破解教程     注意:先不要打开myeclipse,破解完成之后再打开    Myeclipse-2014-GA-破解文件  链接: https://pan.baid ...

  3. Data too long for column

    一篇文章的正文,需要很多字数,默认就是255,不够 @Lob @Basic @Type(type = "text") @Column(name = "detail&quo ...

  4. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  5. 1.Spring【IOC】XML方式

    1.下载开发包 http://repo.springsource.org/libs-release-local/org/springframework/spring 2.创建WEB工程,引入jar包 ...

  6. Mysql8+mybatisGenerator (mysql 8的逆向工程)

    最近试了一下mysql8的逆向工程工具 1.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...

  7. Html5 拨打手机号码

    采用url链接的方式,实现拨打电话功能. 1.最常用WEB页面JS实现一键拨号的电话拨打功能: <a href="tel:12345678987">WEB页面JS拨打& ...

  8. js 给链接 url或href或js、css、图片等解决浏览器缓存

    一. 添加时间戳 情况一.链接是常量 var rand = new Date().getTime(); var aLen=document.getElementsByTagName("a&q ...

  9. 前端存取cookie

    1.存cookie document.cookie="user_phone="+loginMake1Value;//存手机号码cookie//'user_phone'为cookie ...

  10. Linux TC的ifb原理以及ingress流控-转

    原文:http://www.xuebuyuan.com/2961303.html 首先贴上Linux内核的ifb.c的文件头注释:     The purpose of this driver is ...