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导出模块

时间: 2024-12-12 23:54:41

nodeJs基础方法的相关文章

[转]Nodejs基础中间件Connect

Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏览器就基于V8,同时打开20-30个网页都很流畅.Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低.非常适合小型网站,个性化网站,我们自己的Geek网站!! 关于作者 张丹(Conan),

Nodejs基础中间件

Nodejs基础中间件Connect http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: [email protected] 转载请注明出处: http://blog.fens.me/nodejs-connect/ 前言 "中间件"在软件领域是一个非常广的概念,除操作系统的软件都可以称

C# 验证码识别基础方法及源码

原文:C# 验证码识别基础方法及源码 先说说写这个的背景 最近有朋友在搞一个东西,已经做的挺不错了,最后想再完美一点,于是乎就提议把这种验证码给K.O.了,于是乎就K.O.了这个验证码.达到单个图片识别时间小于200ms,500个样本人工统计正确率为95%.由于本人没有相关经验,是摸着石头过河.本着经验分享的精神,分享一下整个分析的思路.在各位大神面前献丑了. 再看看部分识别结果 是不是看着很眼熟? 处理第一步 去背景噪音和二值化 对于这一块,考虑了几种方法. 方法一:统计图片颜色分布,颜色占有

EF 底层基础方法

1 using System; 2 using System.Data; 3 using System.Collections.Generic; 4 using System.Data.Entity; 5 using System.Linq; 6 using System.Linq.Expressions; 7 using System.Text; 8 using System.Threading.Tasks; 9 using SchoolDAL.Context; 10 using School

Node.js学习笔记【3】NodeJS基础、代码的组织和部署、文件操作、网络操作、进程管理、异步编程

一.表 学生表 CREATE TABLE `t_student` ( `stuNum` int(11) NOT NULL auto_increment, `stuName` varchar(20) default NULL, `birthday` date default NULL, PRIMARY KEY  (`stuNum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 学生分数表 CREATE TABLE `t_stu_score` ( `id` int(11

C#验证码识别基础方法实例分析

本文实例讲述了C#验证码识别基础方法,是非常实用的技巧.分享给大家供大家参考.具体方法分析如下: 背景 最近有朋友在搞一个东西,已经做的挺不错了,最后想再完美一点,于是乎就提议把这种验证码给K.O.了,于是乎就K.O.了这个验证码.达到单个图片识别时间小于200ms,500个样本人工统计正确率为95%.由于本人没有相关经验,是摸着石头过河.本着经验分享的精神,分享一下整个分析的思路.在各位大神面前献丑了. 再来看看部分识别结果如下图所示: 这里是不是看着很眼熟?下面再来具体分析一下. 处理第一步

第三章 nodejs基础知识(上)

本章主要介绍一些nodejs的基础知识: 1. 什么是nodejs中的控制台,如何向控制台进行标准输出流与标准错误输出流的输出: 2. 什么是nodejs中的全局作用域,在nodejs中预先提供了哪些全局函数以及全局变量: 3. 什么是nodejs中的事件处理机制以及事件环进制,如何在nodejs中为各种事件指定事件触发以及事件取消时执行的回调函数: 4. 如何使用nodejs 中的调试器进行应用程序的调试: 3.1 nodejs中的控制台 在nodejs中,使用console对象代表控制台.在

Nodejs基础中间件Connect

http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: [email protected] 转载请注明出处: http://blog.fens.me/nodejs-connect/ 前言 “中间件”在软件领域是一个非常广的概念,除操作系统的软件都可以称为中间件,比如,消息中间件,ESB中间件,日志中

NodeJS基础教程

关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版.因此,只有当进行错误更正以及针对新版本Node.js的改动进行对应的修正时,才会进行更新. 本书中的代码案例都在Node.js 0.6.11版本中测试过,可以正确工作. 读者对象 本书最适合与我有相似技术背景的读者: 至少对一门诸如Ruby.Python.PHP或者Java这样面向对象的语言有一定的