nodejs怎么安装npmodeschool

从我大一接触第一门编程语言C开始,到现在工作三年陆续接触到了C、汇编、C++、C#、Java、JavaScript、PHP,还有一些HTML、CSS神马的,从来没有一门语言让我像对node.js一样的着迷。接触nodejs在我之前博客提到过在搞web socket在选择服务器的时候很多人推荐nodejs版的,无奈当时对nodejs没有任何概念,所以没看懂人家写的代码,但是感觉很熟悉,网上基本是以在服务器端运行的javascript来解释什么是nodejs,这就让我更疑惑了,javascript怎么可能做socket服务器,在用C#写出服务器后回头看了一下node.js,十分钟之后我就被完全吸引住了。
补记:由于写博客是对nodejs处于了解语法阶段,很多问题没有说清楚,点反对的人不少,关于一些原理性东西可以看看
什么是node.js
到底什么是node.js呢?看看对nodejs的描述:
Node.js is a platform built on&&for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
我们可以对此总结出几点
node.js是一个构建在Chrome JavaScript运行环境的平台,这是很重要的一点,node.js并不是一门语言,而是一个平台
node.js致力于使构建速度快、稳定的网络程序更简单
node.js具有事件驱动和非阻塞I/O的特色,使之轻量级并且高效率
node.js非常适合在分布式设备运行数据密集型实时应用程序
服务器端运行的JavaScript?
Chrome JavaScript runtime也就是我们常说的 Chrome的V8 JavaScript Engine,也就是Goole开发的一个用于Chrome浏览器的底层JavaScript引擎,用于解析JavaScript语句创建其运行环境,保证我们写的语句在浏览器上的表现和我们预期的一致。
那么为什么说node.js是服务器端运行的JavaScript?好好地nodejs干嘛要和V8扯上关系?除了Google搞的V8解释JavaScript十分的快,十分重要的一个原因是V8 JavaScript 引擎并不仅限于在浏览器中运行,可以嵌入任何应用程序中运行。Node.js 和.net framework类似是一个平台(这里有些搞不明白,望大神们指点一二),但它没有像.net一样创造了一门语言&&C#在这个平台上运行,而是很巧妙的借用了web开发人员已经非常熟悉的JavaScript语法,使用V8引擎来解析语句,并将其重建可在服务器上使用。所以严格上说node.js并不是服务器端运行的Javascript,而是可以在服务器端运行JavaScript语法的平台。&
为什么要用node.js
搞了半天就是一个新瓶装旧酒的东西,看起来除了一个新鲜的可以使用JavaScript语法,node.js没什么长处,为什么要用它而不是同样可以在服务器端运行的Java或C#呢?这要从node.js事件驱动和非阻塞I/O的特色谈起。关于事件驱动熟悉JavaScript的同学应该很熟悉了,node.js采用一系列&非阻塞&库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口,比如一个数据库访问,采用事件机制,发起请求之后,立即将进程交出,当数据返回后触发事件,再继续处理数据。
在传统的阻塞I/O中其运行过程是这样的
int num=query('select * from ......');
print(num);...................//无关语句
print方法必须等待query方法返回结果,如果数据库出现网络连接故障,那么print方法就要等到超时才能执行,然后后面一些无关语句才能一次执行,而在非阻塞I/O中是这样的
query('select * from...',callback(data){
.............//相关语句
..............//无关语句
跟我们使用ajax,在回调函数中处理结果,但是不影响下面语句执行。 怪不得node.js要借用JavaScript来做此事,JavaScript的几个特性使它很胜任这项工作
函数式编程,支持匿名函数,函数参数
Node.js中代码是单进程、单线程执行的(我们写的代码是,但node.js本身不是有兴趣同学可以看看进一步了解),使用事件轮询机制和非阻塞I/O,在不新增额外线程的情况下对任务进行并行处理 。node.js解决了阻塞式编程浪费大量进程资源只是在等待,导致的大量内存和cpu的浪费问题,所以才敢宣称自己perfect for数据密集型的实时web 应用程序。
nodejs的安装还是很简单的,尤其是现在安装包都把npm集成了进去,不用单独安装了,下载下安装包运行就可以了,另外想完整使用nodejs的话需要有C语言的编译环境、git和python,使用window的同学很能会稍微麻烦一些,需要搞定这些。对命令行情有独钟的同学可以看看
npm是node packaged modules的缩写,其实是一个nodejs的module的管理工具
什么是module
所谓module和java中的包的概念很类似,一些解决方案的集合,官方会提供核心的几个,第三方的很多
如何安装第三方module
因为nodejs的社区很活跃,有很多好用的第三方的包,我们可以在终端中使用npm的命令安装
npm install [-g] &name&:使用install指令可以把nodule下载安装的nodejs的全局的path处,不加的话会安装到当前路径
npm remove &name&:移除module
npm update &name&:更新 module
还有一些常用命令可以看看
第一个demo
&这些都搞定后我们就可以写传说中的hello world了。在任意目录建一个test.js文件
console.log('Hello, World!');
简单的一句话就可以,然后使用node命令运行
&这这这。。。太没技术含量了,看看官方给的demo,使用nodejs创建一个web server有多简单
var http=require('http');//引入http module
2 http.createServer(function(request,response){//创建一个web server
//回调函数,这样创建server方法就不会阻塞了
response.writeHead(200,{'contentType':'text/plain'});
response.end('Hello World!\n');
6 }).listen(8124);
7 console.log('Server running at http://127.0.0.1:8124/');
&先运行一下服务器,按两次Ctrl+C退出
使用浏览器访问一下
就这么简单
看到上面的demo是不是也对nodejs产生兴趣了呢,可是像我这样的懒人接触一门新语言的时候不知道该如何下手,难道又要去做个无聊的购物车神马的嘛,学习nodejs不用,nodejs为我们提供了一个小游戏一样的教程,就像个寻宝过程从零开始,没步都有一个任务和一下提示让你走的更远,上下载然后开始寻宝吧,我就是被这小游戏迷住了,顺便秀一下我一天的战绩,每个任务都完成了
看看解释就知道怎么做了,不过建议最开始run和verify结合使用,verify告诉你执行结果和预期结果,run会告诉你有哪些错误
&当然除了这些小游戏帮我们熟悉nodejs语法及使用,一些优秀的社区也可以帮我们很多
阅读(...) 评论()热门关键字:
1722&/&560
1414&/&470
1020&/&147
1233&/&347
1371&/&380
1143&/&214
1403&/&419在NodeSchool上学习NodeJs - 简书
在NodeSchool上学习NodeJs
最近发现了一个学习nodejs的神器,在这里给大家分享下:
这是官方网站:
首先安装nodejs,去node的官方网站下载即可,跟平常安装软件没什么区别,因此就不赘述了。
node安装完后打开运行输入cmd,查看下是否安装成功,指令如下:
出现版本号,就说明成功了。npm是node自带的。
接下来安装 node学习包:
安装完成后,执行learnyounode命令就会出现以下界面:(键盘上下键控制,可设置为中文)
node中一共有13个关卡,按回车即可进入,以下是学习界面:
接下来根据提示学习,完成题目即可,是不是很简单呢~
官网里还有其他学习包,不过好像只有javascripting和learnyounode两个是汉化过的。大家都可以试试。
学习过程中会用到的一些命令
mkdir xxx 创建目录
type nul & xxx.js 创建文件
start xxx.js 打开文件
learnyounode 进入学习环境
learnyounode run xxx.js 在学习环境下运行文件
learnyounode verify xxx.js 验证回答
learnyounode help 帮助
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。 后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。 后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2...
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准。 后来,微软通过IE击败了Netscape后一统桌面,结果几年时间,浏览器毫无进步。(2...
■dinner 是一天中主要的、比较正式和丰盛的一顿饭,可以是午饭,也可以是晚饭。美国人由于工作关系,一般午饭很简单,所以dinner通常是晚饭。但是遇到周末或节日(感恩节、圣诞、新年等),则中饭就比较丰盛,dinner就是中饭(约在下午一点钟)。如果被美国人邀请have ...
昨晚十点,拿起读了一小半的《活着》,心情复杂的开始了这次阅读。 富贵,或许是幸运的,一次次死里逃生,他也是不幸的,一次次亲手埋葬自己的亲人。他的一生,就像带我们走过一个时代的变换,从富贵到贫穷,亲人相继离世。非常非常惋惜有庆的离开,那简直就是被活生生地抽干血,少年满怀热情,...
这是那里的城
飞来了的影 仿佛是神的住所
自我成了风景 没有时间的缩进
没有生死的狰狞 你是不是那天使
徘徊庭树下的情 还是那池中物屑
飞翔公园的精灵 默默地守候寂静
看来时路过的影
不要因为走得太远,而忘记出发的初衷,心 累了,就停下来问问自己,当时执意追求远方的原因是什么?调整心态继续出发,生活不易,每个人都有疲惫的时候,可生活再难再累都得继续下去,我们改变不了外界,只能改变内心,改变心态,保持平和勇敢向上的心态,面对人生的难,让生命中的那些美好与忧...
循环中break语句是用于在循环体内部终止循环,在上文已做讲解。下面通过一个典型的示例演示break语句用法。 示例:判定输入的整数是否是素数。 分析:素数只能被1和自身整除的正整数,即素数有且只有两个绝路,除此之外,不能出现第三个约数。 步骤如下: 1.整数n输入 2.分...在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
从来没写过JS代码,基本也不看。
平常工作用python,大学学过一些C。
求大大们指教~
来源: 101 新手上路
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不认识字,如何读《红楼梦》?
答:先学识字。
首先必须明确两点:
异步事件驱动特性不是nodejs的,而是js的。
js是一门语言,一门真正的编程语言。
只是那些教程的代码例子使用了浏览器而已,我一般教别人 js 的时候也是在 chrome 的控制台里面,而不是在 nodejs 的命令行里。这些都不影响你学习js。
至于 BOM,这明显是前端(浏览器)的东西,你可以不学。至于 js 特性、DOM、OO 等,都是前后端通用的。
你曾经提到你学习了 C,其实浏览器也好,nodejs 也好,都是平台,都是运行js的平台。
你学习 C 的时候,应该是在 Windows 学的吧,但是,这些也不影响你在linux下编程。
C 语言依然是 C 语言,标准库依然是标准库,只是平台不同了而已。 你先把 js 学好,然后再学 nodejs 平台提供的那些东西。
祝:学习顺利
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
先学 javascript ,再学 node.js。
&&&--------------------------------------------------- 此处应有赞
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不要急,慢慢来。从基础开始,不会走怎么会跑呢
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
学好JavaScript是必须的,不会初等数学如何学习微积分?这问题谁能回答。不过如果你决定为了学习Node而学习JavaScript,这里我倒有些建议。
不要胡乱买书,先在google上看看有没有适合你的tutorial。
如果自己的情况必须买实体书,我建议你买图灵的。千万不要购买那些只教你DOM操作的书,DOM只是JavaScript的一个部分,要知道你想学习的是Node,而不是学习让你网站上的广告动来动去。
有JavaScript基础后(这里的基础不是说数据类型控制结构而已,而是JavaScript的一些高级特性例如原型链、作用域、闭包等等你也必须掌握),你就可以去看API文档。其实看什么教程都不如自己直接去看API,看了以后你会发现,Node不是只能做web server的。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不会js照样是可以写node的,你就当node是门新语言就行。node学会了js就会了。(javascript前端的应用自然你是不会了)
coffee倒是不推荐直接学,等基础好了再学。
了解什么是事件驱动,事件分发器,什么是异步调用,理解web服务器的运作道理等等就行。
如果要写node是不可能不会js的,因为node就是js。
每个人学东西的方式是不同的,有人从理论上来,实际操作会慢一些。有人是实际操作好,理论未必十分明了,怎么做就要看自己适合什么。要是连这个都分不清,那就难办了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
很简单,学习即可。CoffeeScript同样使用缩进,也有list comprehension,吸收了不少Python的东西。你会 Python 可以很快上手。 CoffeeScript 可以编译成 JavaScript。而且现在 CoffeeScript 已经相对比较成熟了。
我会告诉你还有这种神器么?(将Python 3转换成 JavaScript。)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
还是建议你先学好javascript,再去学习node.另外诸如:coffeescript、typescript语言,还是要先学好javascript,这些都是javascript的子集或则超集。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
javascript是必须的..node.js只是服务端js
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看完基础的javascript,忽略BOM,DOM,直接看nodejs,没事的,看两本书,《nodejs开发指南》和《深入浅出nodejs》,然后把mongo也学了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
if else for都会吧?
理解一些JS的原型,作用域。
就可以开始写了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
同意楼上,直接用coffee,另外这里有一个node的koans,一道题一道题来
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不用学javascript,学过php吗?学过的话,直接看node的文档来进行开发就可以了。没学过的话也不用学js,推荐两本书:扑灵的《node.js深入浅出》 《了不起的node.js》
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这个还真得先学好js,最好能把常见的设计模式也了解一下再来学习nodejs
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
没有基础楼会倒的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以并发着学两个我当时就是
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
注意要加;号
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 nodejs怎么安装npm 的文章

 

随机推荐