进入Node.js的世界

这些天,每个人都在谈论Node.js ,但是您不确定它是什么吗? 或者,您是否只想以一些书呆子知识打动您的朋友? 本文将带您快速了解Node.js的世界!

进入Node.js的世界_第1张图片

背景

2009年5月27日, Ryan Dahl发布了以JavaScript和C ++编写的开源软件平台的初始版本。 但是他为什么命名为Node? 在项目开始时 ,一个无阻塞的Web服务器称为web.js。 赖安·达尔(Ryan Dahl)很快发现Web服务器还不够,因此他创建了一个基础来控制称为节点的分布式系统之间的交互-?? 事件驱动的非阻塞I / O系统。

Node应用程序是使用JavaScript开发的,因为Node基于Google的开源JavaScript引擎V8。 V8与使Chrome拥有出色的JavaScript性能的引擎相同。 这使您可以为在Linux,MacOS,Windows或SunOS上运行的每个设备创建应用程序。

您还将获得一个由核心和第三方Node模块组成的大型库,以处理其中的几乎所有任务。 核心模块与Node捆绑在一起,而第三方模块可以使用Node的软件包管理器进行安装。 而且,由于Node是根据MIT许可发布的,因此您可以免费使用所有这些!

模组

可以将模块视为大型系统中的最小部分。 从技术上讲,单个源文件被视为一个模块,但通常多个文件一起工作以构成一个模块(或库)。 模块旨在解决单个问题,并且仅解决该问题。 然后,应用程序可以充当使这些模块协同工作的粘合剂。

进入Node.js的世界_第2张图片

安装节点

有多种方法可以在系统上安装Node。 您可以在任何受支持的系统上从源代码构建Node,但是使用程序包管理器或安装程序通常更简单。

视窗

使用自动安装程序来安装Node。

的Linux

使用系统默认的软件包管理器安装节点软件包。

苹果电脑

您可以使用软件包,Flink,自制软件或macports来安装Node。

是否安装了节点?

打开命令行,然后输入node -v 。 这会将当前安装的Node版本打印到终端窗口。 如果看不到版本号,则说明出现了问题,请尝试重新安装。 您还应该通过键入命令npm -v验证是否已安装Node的软件包管理器(npm)。

你好,世界!

创建一个名为hello_world.js的文件。 Node允许您使用内置的console.log()函数将消息打印到终端。 将以下代码添加到hello_world.js

console.log('Hello World');

要执行此程序,请打开一个终端窗口,然后转到包含hello_world.js的目录。 在该目录中,键入命令node hello_world 。 该命令调用Node并告诉它执行hello_world.js的内容。 如果一切正常,您应该在终端上看到消息Hello World。

核心模块

如前所述,Node附带了一组核心模块 。 本节描述了三个常用的核心模块,但是本节绝不是全面的。

console

这类似于大多数Web浏览器提供的console对象功能,但是输出被发送到标准输出( stdout )或标准错误( stderr )。 您已经在Hello World示例中看到了操作中的console对象。 值得指出的是,默认情况下,每个Node应用程序都使用console ,这意味着您无需显式导入它。 有关此模块的更多信息,请参见:

  • 文献资料
  • 资源
http

当大多数人想到Node时,他们就会想到Web服务器。 HTTP模块提供了用于处理HTTP / HTTPS流量的服务器和客户端。 与console对象不同,必须使用require()函数将http模块显式导入到应用程序中(您很快会看到一个示例)。 有关http模块的更多信息,请参见:

  • 文献资料
  • 资源
fs

fs模块提供与文件系统交互的异步和同步功能。 本文将不涉及fs模块的详细信息,但好奇的读者将​​针对该主题的上一篇SitePoint文章。 官方的Node文档和源代码也可在以下位置获得:

  • 文献资料
  • 资源

一个简单的Web服务器

一个非常简单的Web服务器的源代码如下所示。 该服务器利用前面提到的http核心模块。 将以下代码保存在web_server.js

// Load the "http" module
var http = require('http');

// Create a HTTP server
// - request comes from the client
// - response goes to the client
http.createServer(function(request, response) {

  // Send the HTTP status code "200 - ok" to the request 
  // and set the content type to "text/plain"
  response.writeHead(200, {'Content-Type': 'text/plain'});

  // Tell the server that everything has been sent to the client
  // so that the server considers this message as complete
  response.end('Hello World');

// Accept connections on port and IP
}).listen(1337, '127.0.0.1');

// Tell the user that the server is up and running
console.log('Server running at http://127.0.0.1:1337/');

通过在终端窗口中键入命令node web_server来运行服务器。 现在,您可以通过打开自己喜欢的浏览器并导航到http://127.0.0.1:1337/来访问服务器。 您将在浏览器中看到美丽的Hello World消息。

节点包管理器

如果要使用更多的核心模块,则无法使用Node's Package Manager或npm。 npm从其注册表中安装了第三方模块,其中包含超过64,000个模块。 从Node 0.6.3版本开始,npm会自动捆绑并安装,因此您可以立即使用它。

安装套件

npm最常见的用例是从注册表中安装模块。 要安装模块,请发出命令npm install module_name ,其中module_name是注册表中模块的ID。 例如,要安装Express框架,您将发出以下命令:

npm install express

这将在您当前目录的node_modules子目录中安装Express。 如果查看node_modules内部,将看到另一个名为express目录,其中包含Express模块​​的代码。 您还将在express内部看到另一个node_modules目录。 此目录包含Express依赖的所有模块。

您的代码所依赖的模块称为依赖项。 在我们的示例Web服务器中, http是一个依赖项,但是由于它是核心模块,因此我们不必担心安装它。 如果您的代码依赖于第三方模块,那么npm需要了解它,以便可以安装它。 依赖项信息以及有关应用程序的其他元数据都存储在名为package.json的文件中。 该文件存储在应用程序的根目录中,并包含JSON数据。

例如,假设您的项目依赖于coffee-script模块。 您需要将其包含在package.json 。 幸运的是,当您使用--save参数安装模块时,可以自动更新package.json ,如下所示:

npm install --save coffee-script

当然,您可能还没有package.json文件,因此不会发生任何特殊情况。 我们将很快重新访问package.json文件。 现在,只知道前面的命令会在package.json创建如下内容:

...
  "dependencies": {
    "coffee-script": "^1.7.1"
  }
...

创建一个包

要创建一个包,您只需要创建一个package.json文件。 由于这是一个普通的JSON文件,因此您可以自己编写一个。 但是,该文件应包含某些字段,并且您很容易犯一个错误。 因此,建议您使用npm init命令自动生成package.json 。 此命令将提示您输入重要值。 npm init的示例如下所示。 括号中的值是npm提供的建议。 您可以简单地按Enter键接受建议,或键入您自己的值,如version行所示。

name: (node-package.json) 
version: (0.0.0) 0.0.1
description: How to create a new package.json
entry point: (index.js) 
test command: 
git repository: (git://github.com/TimPietrusky/node-package.json.git) 
keywords: package, json
license: (ISC) MIT

完成所有提示后,将创建一个package.json文件,其中包含项目的名称(必需),版本(必需),描述,作者,关键字,存储库,主页以及其他有用的数据。 通过提供package.json文件,另一个开发人员可以轻松安装模块及其所有依赖项。 该 GitHub存储库(以及发布到npm注册表中的任何存储库)中都提供了一个示例package.json文件。

这些只是package.json基础知识。 如果您想了解所有可用的属性,则应阅读package.json速查表 。

结论

本文提供了使用Node的绝对基础。 但是,这只是冰山一角,Node是那里发展最快的社区之一。 我建议您查看官方的Node项目页面,以获取指向代码,文章,视频等的链接。 还要注意将来的SitePoint文章,这些文章涵盖的主题包括将代码发布到npm,用于Node开发的IDE以及与Node一起使用的托管提供程序。

想更多地了解这个? 我们的姊妹公司Learnable 开设了全新的Node.js课程 !

From: https://www.sitepoint.com/enter-world-node-js/

你可能感兴趣的:(json,javascript,git,ViewUI)