The Node Beginner Book,Node入门,Node.js最后,会和大家讨论如何设计一个真正完整的应用,剖析要完成该应用需要实玑的不冋同模块,并一步一步介绍如何来实现这些模块。可以确保的是,在这过程中,大家会学到中一些高级的概念、如何使用它们以及为什么使用这些概念就可以实现而其他编程语言中同类的概念就无法实现该应用所有的源代码都可以通过本书代码仓库目录关于状态读者对象本书结构与你简短申明服务器端二个完整的基于的应用用例应用不同模块分析构建应用的模块一个基础的服务器分析服务器进行函数传递函数传递是如何让服务器工作的基于事件驱动的回週服务器是如何处理请求的服务端的模块放在哪里如何来进行请求的路由行为驱动执行路由给真正的请求处理程序让请求处理程序作出晌应不好的实现方式阻塞与非阻塞以非阻塞操作进行请求响应更有用的场景处理请求处理文件上传总结与展望与与你抛开技术,我们先来聊聊你以及你和的关系。本章的主要目的是想让你看看,对你而言是否有必要继续阅读后续章节的内容如果你和我一样,那么你很早就开始利用进行开发,正因如此,你接触到了这个有趣的东西,而对于只会基本的操作为页面添加交互。而你真正想要的是干货,你想要知道如何构建复杂的站点于是,你学习了一种诸如这样的编程语言,并开始书写后端代码与此同时,你还始终关注着随着通过一些对之类技术的介绍,你慢慢了解到了很多中的进阶技能,同时也感受到了绝非仅仅是那么简甲不过,这些毕竞都是前端技术,尽管当想要增强页面的时候,使用总让你觉得很爽,但到最后,你顶多是个用广,而非开发者。然后,出玑了,服务端的这有多酷啊?于是,你觉得是时候该重新拾起既熟悉又陌生的了。但是别应用是一件事情;理解为什么它们要以它们书写的这种方式来书写则意味着你要懂。这次是玩真的了。问题来了:由于真正意义上以两种,甚至可以说是三种形态存在(从中世纪年代的作为对进行增强的小玩具,到像那样严格意义上的前端技术,一直到现在的服务端技术),因此,很难找到一个正确的方式米学习,使得让你书写应用的时候感觉自己是在真正开发它而不仅仅是使用它。因为这就是关键:你本身已经是个有经验的开发者,你不想通过到处寻找各种解决方案(其中可能还冇不正确的)来学习新的技术,你要确保自己是通过正确的方式来学习这项技术当然了,外面不乏很优秀的学习的文章。但是,有的时候光靠那些文章是远远不够的。你需要的是指导本书的目标就是给你提供指导。简短申明业界有非常优秀的程序员。而我并非其中一员。我就是上一节中描述的那个我。我熟悉如何开发后端应用,但是对真正的以及,我都只是新手。我也只是最近学习了的高级概念,并没有实践经验因此,本书并不是一本从入门到精通的书,更像是一本从初级入门到高级入门的书如果成功的话,那么本书就是我当初开始学习最希望拥有的教程服务端最早是运行在浏览器中,然而浏览器只是提供了一个上下文,它定义了使用可以做什么,但并没有说太多关于语言本身可以做什么。事实上,是一门完整的语言:它可以使用在不同的上下文中,其能力与其他同类语言相比有过之而无不及。事实上就是另外一种上下文,它允许在后端(脱离浏览器环境)运行代码。要实现在后台运行代码,代码需要先被解释然后正确的执行。的原理正是如此,它使用了的虚拟机(浏览器使用的执行环境),来解释和执行代码。除此之外,伴随着的还有许多有用的模块,它们可以简化很多重复的劳作,比如向终端输出字符串。因此,事实上既是一个运行时环境,同时又是一个库。要使用首先需要进行安装。关于如何安装,这里就不赘述了,可以直接参考官方的安装指南。安装完成后,继续回来阅读本书下面的内容。好了,废话不多说了,马上开始我们第一个应用:打开你最喜欢的编辑器,创建一个文件。我们要做就是输出,如下是实现该功能的代砬console. log( hello World")保存该文件,并通过来执行:node helloworld. js正常的话,就会在终端输出好吧,我承认这个应用是有点无趣,那么下面我们就米点干货一个完整的基于的应用用例我们来把目标设定得简单点,不过也要够实际才行:用户可以通过浏览器使用我们的应用。当用户请求时,可以看到一个欢迎页面,页面上有一个文件上传的表单。用户可以选择一个图片并提交表单,随后文件将被上传到,该页面完成上传后会把图片显示在页面差不多了,你现在也可以去下,找点东西乱搞一下米完成功能。但是我们现在先不做这个。更进一步地说,在完成这一目标的过程中,我们不仅仅需要基础的代码而不管代码是否优雅。我们还要对此进行抽象,来寻找一种适合构建更为复杂的应用的方式。应用不同模块分析我们来分解一下这个应用,为了实现上文的用例,我们需要实现哪些部分呢?我们需要提供页面,因此需要一个般务界