Nodejs 入门手册
然而,本书还是会对 Javascript中的函数和对象作详细介绍,因为它们与 其他同类编程语言中的函数和对象有很大的不同。 本书结构 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面 以及上传文件。 当然了,应用本身并没有什么了不起的,相比为了实现该功能书写的代码 本身,我们更关注的是如何创建·个框架来对我们应用的不同模块进行干 净地剥离。是不是很玄乎?稍后你就明白了。 木书先从介绍在 Node. js环境中进行 JavaScript开发和在浏览器环境中进 行 JavaScript开发的差异开始 紧接着,会带领大家完成个最传统的“ Hello world”应用,这也是最基础 的 Node. js应用。 最后,会和大家讨论如何设计个“真正”完整的应用,剖析要完成该应用 需要实现的不同模块,并一步一步介绍如何来实现这些模块。 可以确保的是,在这过程中,大家会学到 JavaScript中些高级的概念、 如何使用它们以及为什么使用这些概念就可以实现而其他编程语言中同 类的概念就无法实现。 该应用所有的源代码都可以通过本书 Github代码仓库 目录 关于 状态 读者对象 本书结构 JavaScript与 Node is o Javascript与你 简短中明 服务器端 Javascript o“ Hello world ·二个完整的基于 Node.js的web应用 用例 。应用不同模块分析 构建应用的模块 二个基础的HTTP服务器 分析HTTP服务器 进行函数传递 函数传递是如何让HTTP服务器工作的 。基于事件驱动的回调 服务器是如何处理请求的 服务端的模块放在哪里 如何来进行请求的“路由” 行为驱动执行 路由给真止的请求处理程序 让请求处理程序作出响应 不好的实现方式 阻塞与非阻塞 以非阻塞操作进行请求响应 更有用的场景 处理POST请求 处理文件上传 结与展望 Javascript t与 Node js Javascript与你 抛开技术,我们先来聊聊你以及你和 Javascript的关系。本章的主要目的 是想让你看看,对你而言是否有必要继续阅读后续章节的内容。 如果你和我一样,那么你很早就开始利用HTML进行“开发”,正因如此, 你接触到了这个叫 Javascript有趣的东西,而对于 Javascript,你只会基 木的操作一一为web页面添加交互 而你真正想要的是“干货”,你想要知道如何构建复杂的web站点一一于 是,你学习了一种诸如PHP、Ruby、Java这样的编程语言,并开始书写“后 端”代码。 与此同时,你还始终关注着 Javascript,随着通过一些对 jQuery, Prototype 之类技术的介绍,你慢慢了解到了很多 Javascript中的进阶技能,同时也 感受到了 JavaScript绝非仅仅是 window. opend那么简单 不过,这些毕竟都是前端技术,尽管当想要增强页面的时候,使用 jQuery 总让你觉得很爽,但到最后,你顶多是个 Javascript用户,而非 Javascript 开发者 然后,出现了 Node. js,服务端的 Javascript,这有多酷啊? 于是,你觉得是时候该重新拾起既熟悉又陌生的 Javascript了。但是別急, 写 Node. js应用是一件事情;理解为什么它们要以它们书写的这种方式来 书写则意味着—一你要懂 Javascript。这次是玩真的了。 问题来了:由于 Javascript真正意义上以两种,甚至可以说是三种形态 存在(从中世纪90年代的作为对 DHTML进行增强的小玩具,到像 jQuery 那样严格意义上的前端技术,直到现在的服务端技术),因此,很难找 到个“正确”的方式米学习 Javascript,使得让你书写 Node. js应用的时 候感觉自己是在真正开发它而不仅仅是使用它。 因为这就是关键:你本身已经是个有经验的开发者,你不想通过到处寻 找各种解决方案(其中可能还有不正确的)来学习新的技术,你要确保自 己是通过正确的方式来学习这项技术。 当然了,外面不乏很优秀的学习 Javascript的文章。但是,有的时候光靠 那些文章是远远不够的。你需要的是指导 木书的目标就是给你提供指导。 简短申明 业界有非常优秀的 Javascript程序员。而我并非其中一员 我就是上一节中描述的那个我。我熟悉如何开发后端web应用,但是对“真 正”的 Javascript以及 Node. js,我都只是新手。我也只是最近学习了一些 Javascript的高级概念,并没有实践经验。 因此,本书并不是·本“从入门到精通”的书,更像是·本“从初级入门到高 级入门”的书。 如果成功的话,那么本书就是我当初开始学习 Node js最希望拥有的教程 服务端 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,这里就不赘 述了,可以直接参考官方的安装指南。安装完成后,继续回来阅读本书下 面的内容。 “ Hello world” 好了,“发话”不多说了,马上开始我们第一个 Node. js应用:“ Hello world”。 打开你最喜欢的编辑器,创建一个 helloworld. js文件。我们要做就是向 STDOUT输出“ Hello world”,如下是实现该功能的代码: console. log("Hello World") 保存该文件,并通过 Node. js来执行: node helloworld. js 正常的话,就会在终端输出 Hello world。 好吧,我承认这个应用是有点无趣,那么下面我们就来点“干货” 个完整的基于 Node js的web应用 用例 我们来把目标设定得简单点,不过也要够实际才行 用户可以通过浏览器使用我们的应用 用户请求ht!p:// domain/ start时,可以看到一个欢迎页面,页 面上有一个文件上传的表单。 用户可以选择一个图片并提交表单,随后文件将被上传到 http://domainfupload该页面完成上传后会把图片显示在页面上。 养不多了,你现在也可以去 Google一下,找点东西乱搞一下来完成功能。 但是我们现在先不做这个
暂无评论