"node"相关教程
我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是url...
JavaScript中有一个特殊的对象,称为全局对象(GlobalObject),它及其所有属性都可以在程序的任何地方访问,即全局变量。在浏览器JavaScript中,通常window是全局对象,而Node.js中的全局对象是global,所有全局变量(除了global本身以外)都是global对象的属性。在Node.js我们可以直接访问到global的属性,而不需要在应用中包含它。全局对象与全局变量global最根本的作用是作为全局变量的宿主。按照ECMAScript的定义...
Node.js提供一组类似UNIX(POSIX)标准的文件操作API。Node导入文件系统模块(fs)语法如下所示:var fs = require("fs")异步和同步Node.js文件系统(fs模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync()。异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。建议大...
在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。表单提交到服务器一般都使用GET/POST请求。本章节我们将为大家介绍Node.jsGET/POST请求。获取GET请求内容由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。node.js中url模块中的parse函数提供了这个功能。实例var http = require('http')...
本节介绍Node.js的RESTful API。什么是REST?REST中文解释为,表述性状态传递(英文:RepresentationalStateTransfer,简称REST),是RoyFielding博士在2000年他的博士论文中提出来的一种软件架构风格。表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI和XML(标准通用标记语言下的...
本文档翻译自Node.js官方文档,适用于V0.12.2。本文档将从引用参考和概念两个方面来对Node.jsAPI进行全面的解释,让你更加了解Node.jsAPI。Node.js官方文档的每个章节描述了一个内置模块或高级概念。一般情况下,属性、方法参数,以及提供给事件处理程序的参数都会在主标题下的列表中详细说明。每个.html文档都有对应的.json,它们包含相同的结构化内容。这些东西目前还是实验性的,主要为各种集成开发环境(IDE)和开发工具提供便利。每个.html和.js...
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。稳定性: 5 - 锁定这个模块可用于应用的单元测试,通过require('assert')可以使用这个模块。assert.fail(actual,expected,message,operator)使用参数operator测试参数actual(实际值)和expected(期望值)是否相等。assert(value[,message]...
Node.jsAddons(插件)是动态链接的共享对象。他提供了C/C++类库能力。这些API比较复杂,他包以下几个类库:V8JavaScript,C++类库。用来和JavaScript交互,比如创建对象,调用函数等等。在v8.h头文件中(目录地址deps/v8/include/v8.h),线上地址online。libuv,C事件循环库。等待文件描述符变为可读,等待定时器,等待信号时,会和libuv打交道。或者说,如果你需要和I/O打交道,就会用到libuv。内部Node类库...
在Node.js中我们可以直接访问到全局对象。这些对象在所有模块里都是可用的,有些对象不是在全局作用域而是在模块作用域里,这些情况将在本文的内容中进行介绍。global{Object}全局命名空间对象。在浏览器中,全局作用域就是顶级域。如果在全局域内定义变量varsomething将会是全局变量。而在Node中,顶级域并不是全局域;在模块里定义变量varsomething只是模块内可用。process{Object}进程对象。参见processobject章节.console...
REPL即Node自带的交互式解释器,它可以实现如下的任务:读取(Read)-可以读取用户的输入,解析输入的Javascript数据结构并存储在内存中。执行(Eval)-可以执行输入的Javascript数据结构。打印(Print)-打印输出结果。循环(Loop)-对上述的步骤进行循环,如果需要退出,则用户需要两次按下ctrl-c按钮。稳定性: 3 - 稳定Read-Eval-Print-Loop(REPL读取-执行-输出循环)即可作为独立程序,...
稳定性: 2 - 不稳定流用于处理Node.js中的流数据的抽象接口,在Node里被不同的对象实现。例如,对HTTP服务器的请求是流,process.stdout是流。流是可读的,可写的,或者是可读写的,所有的流是EventEmitter的实例。Node.js访问流模块的方法如下所示:const stream = require('stream');你可以通过require('stream...
稳定性: 3 - 稳定本节将介绍Node.js的DNS模块,你可以通过调用require('dns')来访问DNS模块。DNS模块包含的函数属于2个不同的分类:1)使用系统底层的特性,完成名字解析,这个过程不需要网络通讯,这个分类仅有一个函数:dns.lookup。开发者在同一个系统里名字解析都是用dns.lookup。下面的例子解析了www.google.com:var dns = require(...
稳定性: 3 - 稳定Node.js的URL模块提供了用于分析和解析URL的实用程序。可以调用require('url')来访问它:const url = require('url');解析URL对象有以下内容,依赖于他们是否在URL字符串里存在。任何不在URL字符串里的部分,都不会出现在解析对象里。例子如下:'http://user:pass@host.com:8080/p/...
Neo4jCQLMATCH命令用于从数据库获取有关节点和属性的数据从数据库获取有关节点,关系和属性的数据MATCH命令语法:MATCH ( <node-name>:<label-name>)语法说明语法元素描述<node-name> 这是我们要创建一个节点名称。<label-name> &nbs...
在Neo4j中,两个节点之间的关系是有方向性的。它们是单向或双向的。由于Neo4j遵循属性图数据模型,它应该只支持方向关系。如果我们尝试创建一个没有任何方向的关系,那么Neo4jDB服务器应该抛出一个错误。在本章中,我们将提供一个例子来证明这一点。我们使用以下语法来创建两个节点之间的关系。CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)这...