首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Web开发
> 详细
nodeJs基础
时间:
2014-11-19 01:22:46
阅读:
163
评论:
0
收藏:
0
[点我收藏+]
标签:
nodejs
应用程序
服务器
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基础
标签:
nodejs
应用程序
服务器
原文地址:http://blog.csdn.net/whh4122/article/details/41255267
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
36.VUE — 认识 Webpack 和 安装
2021-07-28
【PHP】上传图片翻转问题
2021-07-28
php对数字进行万。亿的转化
2021-07-28
五个 .NET 性能小贴士
2021-07-28
Three.js中显示坐标轴、平面、球体、四方体
2021-07-28
.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建
2021-07-27
1.html,css
2021-07-27
基于Docker搭建 Php-fpm + Nginx 环境
2021-07-27
nginx + http + svn
2021-07-27
kubernets kube-proxy的代理 iptables和ipvs
2021-07-26
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!