深度解析Node.js:包教不包会

发表时间: 2017-08-22 09:15

最近终于又找到了以前写代码的感觉了,不说十分恢复了,七八分还是有的。你想忘掉烦恼吗?写代码!想不那么无聊吗?还是写代码!不要笑这是真的!因为一旦沉下心去做某事你就会忘了自己身边发生了什么事连想一下自己是不是无聊的时间都没有你还怎么无聊?(反正我是这样),一直想学node.js,我是入门了,现在我就给大家分享一下经验让大家少走弯路。顺便说一下我学会node.js只用了半天我想我可以让你十分钟学会,就在你看完这篇文件之后你就应该入门了,好了时间宝贵我们开始吧

  • 首先说明一下这篇文章适合有一定编程基础的人,并且对javascript比较熟悉,我不会对诸如数据类型,变量,各种结构等等做解释,这些基本概念我默念你已经会了

what is Node.js?

这真是个好问题,能提出这个问题的人都很了不起(看了那么多的技术文档我发现不管是什么技术第一个问题都是what is xxx?为什么会出现这样的情况呢?现实生活中我们拿到一件没见过的东西一般会问三个问题:这什么玩意?干什么的?怎么用?哈哈,是不是这样?有点偏离主题了...时间紧任务重)看名字我猜这个技术应该跟javascript有关,没错,真让你猜着了还真跟javascript有关,让我们先抛开技术,先来聊聊你以及你和javascript的关系。如果你和我一样,那么你很早就开始利用HTML进行“开发”做一些页面给自己看,慢慢的你不想看到静止的页面因为它跟你没有任何的交互,于是你接触了这个叫javascript的乱七八糟(当时感觉很糟糕不过只是当时)而有有趣的东西,而对于javascript,你只会基本的操作----为你的页面添加一些交互,虽然你的页面终于在你的努力下可以点击一个按钮弹出个对话框,但是你真正想要的“干货”不仅仅是这样。你想要知道如何构建复杂的web站点,于是,你又学习了一种诸如Java,PHP,Ruby这样的编程语言并开始书写“后端”代码。于此同时,你还始终关注着JavaScript,因为你想要良好的交互嘛,于是终于封装的javascript类库jQuery横空出世了,它提供给我们良好的接口让我们可以不用遭受javascript那么痛苦的折磨,你慢慢了解到了很多javascript中的进阶技能,同时也感受到了javascript绝非仅仅是window.open那么简单。不过这些毕竟都是前端技术,尽管当想要增强页面的时候使用jquery总让你觉得很爽,但是到最后,你顶多是个javascript用户,而非javascript开发者。终于出现了node.js服务器端的javascript,这有多酷啊!所以,你觉得是时候重新拾起熟悉又陌生的javascript了,但是别急,写Node.js应用是另一件事,理解为什么它们要以它们书写的这种方式来书写则意味着--你要懂javascript。这次我们要玩真的了

那么问题来了(挖掘机哪家强?)

由于javascript真正意义上以两种,甚至三种形态存在,因此很难找到一个“正确”的方式来学习javascript,使得你写node.js的时候感觉自己是在真正开发它而不仅仅是使用它。这就是问题的所在了:你本身已经是个有经验的开发者,你不想通过到处寻找各种解决方案(其中还有可能有不正确的)来学习新的技术,你要确保自己是通过正确的方式来学习这项技术。当然了,外面不乏很优秀的学习javascript的文章,但是,有时候光靠那些文章是远远不够的,我觉得最主要的是需要引导。这就是我写这篇文章的目的所在了

再做一个声明:业界有非常优秀的javascript程序员。而我并非其中一员。我就是上面描述的那个我,我熟悉如何开发后端web应用,但是对“真正”的javascript以及Node.js,我都只是新手,我也只是最近学习了一些javascript的高级概念,并没有实践经验

[服务器端javascript]

javascript最早是运行在浏览器中,然而浏览器只是提供了一个上下文(也就是环境)它定义了使用javascript可以做什么,但并没有“说”太多关于javascript本身可以做什么。事实上,javascript是一门“完整”的语言:它可以使用在不同的上下文中,其能力与其他同类语言相比有过之而无不及,Node.js事实上就是另外一种上下文,它允许在后端(脱离浏览器环境)运行javascript代码,要实现在后台运行javascript代码,代码需要先被解释然后正确的执行。Node.js的原理正是如此,它使用了Google的V8虚拟机(Google的chrome浏览器使用的javascript执行环境)来解释执行javascript代码。除此之外,伴随着Node.js的还有许多有用的模块,它们可以简化很多重复的劳作,比如向终端输出字符串。因此,Node.js事实上不仅是一个运行环境还是一个库

要使用Node.js,首先雪瑶进行安装,关于如何安装Node.js这里就不废话了可以去官网看看安装指南另外想说一点:windows的同学如果你不想被乱七八糟的问题困扰那你可以考虑换下系统

[Hello World]

好了,废话不多说了,马上开始我们的第一个Node.js应用:对的如你所愿:“Hello World”。打开你喜欢的编辑器(个人超喜欢sublime text)创建一个hello world.js文件,我们要向STDOUT输出“Hello World”,代码:

console.log(“Hello World”);

保存该文件,并通过node.js 来执行它

node helloworld.js

(我们调试页面的时候是不是经常用console,这个已经相当熟悉)

正常的话,就会在终端上输出Hello World。好吧,我承认这个应用是有点无聊了

不过你现在已经知道了什么是node.js它能做什么,应该好好学习javascript。最后我想用《无间道》里的一句话给我们开发者一个忠告:出来混迟早都是要还的。就像javascript你以前没有好好学,现在该是还的时候了吧