Node.js入门

 

Node.js

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设在POSIX环境下运行Linux 或 Mac OS X。如果是在Windows下,那就需要安装MinGW以获得一个仿POSIX的环境。在Node中,Http是首要的。Node为创建http服务器作了优化,所以在网上看到的大部分示例和库都是集中在web上(http框架、模板库等)。
 

Node.js不是JS应用,而是JS运行平台

    看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。
    为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了C++语言。
 

Node.js采用事件驱动、异步编程,为网络服务而设计

    Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。
 

Node.js的特点

    Node.js 在设计上也是比较大胆,它 以单进程、单线程模式运行(很吃惊,对吧?这和Javascript 的运行方式一致),事件驱动机制是Node.js 通过内部单线程高效率地维护事件循环队列来实现的,没有多线程的资源占用和上下文切换,这意味着面对大规模的http 请求,Node.js 凭借事件驱动搞定一切,习惯了传统语言的网络服务开发人员可能对多线程并发和协作非常熟悉,但是面对Node.js,我们需要接受和理解它的特点。
    Node.js的另一个特点是它支持的编程语言是Javascript。Javascript作为前端工程师的主力语言,在技术社区中有相当的号召力;Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程;Javascript在动态语言中性能较好,再加上V8引擎也是同类的佼佼者,所以Node.js的性能也受益其中。
 
Hello World

  马上开始我们第一个Node.js应用:“Hello World”。打开你的编辑器,创建一个hello.js文件。编写代码保存该文件,并通过Node.js来执行。

  • 控制台输出
1 console.log('hello, nodejs.') ; 

  • Web输出
1 var http = require("http");
2 http.createServer(function(request, response) {
3 response.writeHead(200, {"Content-Type": "text/html"});
4 response.write("Hello World!");
5 response.end();
6 }).listen(8000);
  打开浏览器地址栏输入http://localhost:8000/,可以在网页上看到输出结果。
 
 
 
分类: Node.js
标签: Node.js

Node.js基础知识的更多相关文章

  1. NodeJs>------->>第三章:Node.js基础知识

    第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 console.log(" node app1.js 1> ...

  2. Node.js基础知识普及

    Node.js只支持单线程,故不会产生死锁,采用非阻塞I/O机制和事件环机制.非常适合与开发需要处理大量并发的输入/输出的应用程序.   一. Node.js的核心模块有很多,这里先写几个比较常用的( ...

  3. Node.js权威指南 (3) - Node.js基础知识

    3.1 Node.js中的控制台 / 19 3.1.1 console.log方法 / 19 3.1.2 console.error方法 / 20 3.1.3 console.dir方法 / 21 3 ...

  4. node.js 基础知识之 querystring.stringify querystring.escape

    序列化   1.  querystring.stringify({name:'chenshuai',ago:21,job:"web"})    'name=chenshuai&am ...

  5. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  6. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  7. HTML+CSS+JS基础知识

    HTML+CSS+JS基础知识 目录 对HTML+CSS+JS的理解 基础知识 对HTML+CSS+JS的理解 基础知识 插入样式表的三种方式 外部样式表:<link rel="sty ...

  8. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  9. 网站开发进阶(十五)JS基础知识充电站

    JS基础知识充电站 1.javascript alert弹出对话框时确定和取消两个按钮返回值? 用的不是alert对话框,是confirm confirm(str); 参数str:你要说的话或问题: ...

随机推荐

  1. ssh无密码登陆(转)

    [0]写在前面 由于ssh 实现的是免密码登陆,大致步骤是: 0.1) client通过ssh登陆到server: 0.2) server检查家目录下的.ssh文件, 并发送公钥文件 authoriz ...

  2. hdu 3695 Computer Virus on Planet Pandora(AC自己主动机)

    题目连接:hdu 3695 Computer Virus on Planet Pandora 题目大意:给定一些病毒串,要求推断说给定串中包括几个病毒串,包括反转. 解题思路:将给定的字符串展开,然后 ...

  3. Extjs 4.2 右键菜单树节点(,选择逆,废除)

    写自己的最新版本号extjs4.2树节点的操作,记录它,可能在将来被用于. var tree = new Ext.tree.TreePanel({ flex: 1, animate: true, au ...

  4. 最近ubuntu 14.04 cpu高入住故障排除

    最近linux始终使用cpu实现全值, 双核cpu这始终是一个核心100%,还有的正常核.top这一发现输入法框架fcitx加载,直接kill它,不能用于发现狗输入法,令: fcitx fcitx-q ...

  5. Linux了解进程的地址空间

    供Linux了解虚拟内存,非常好的引导了.原文链接:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26683523&i ...

  6. Redux基础

    Redux 是一个状态容器 Redux 就像是作者自己的介绍,它不会为你提供任何的东西,它不会告诉你如何做路由,它只专注于应用程序状态,是一个 JavasSript 的状态容器,所有的状态的变化都是当 ...

  7. POJ3690 Constellations 【KMP】

    Constellations Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 5044   Accepted: 983 Des ...

  8. hdu More is better

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1856 题意:王老师要找一些男生帮助他完成一项工程.要求最后挑选出的男生之间都是朋友关系,可以说直接的, ...

  9. JS扩展 或 Jquery的扩展写法

    <script>//JS扩展String函数test,其它类推String.prototype.test = function(s){ alert(this+s);}var str = ' ...

  10. php+flash头像上传组件

    有会员系统的站点一般都会有一个头像上传组件,一般做的最简单的是 这样的方式长处是代码写的简单,仅仅要推断图片大小和类型,然后更新数据库.可是用户体验不高.并且站点其它页面假设要使用较小的20X20或1 ...