目前为止,我们做的服务器没有实际的用处,接下来我们开始实现一些实际有用的功能。 我们要做的是:用户选择一个文件,上传该文件,然后在浏览器中看到上传的文件。 首先我们需要一个文本区(textarea)供用户输入内容,然后通过POST请求提交给服务器。 我们在start事件处理器里添加代码,requestHandlers.js修改如下:代码如下: function start(response) { console.log("Request handler start was called."); var body = <htm...
我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了。Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一个官方文档提供的例程向读者演示一下该方法的使用过程。 本例ch04.buffer-byteLength.js主要代码如下:/*** ch04.buffer-byteLength.js*/console.info("------Buffer.byteLength()------");console.info();str = \u00bd +...
下面记录一下在本地 Windwos 环境用 vagrant 搭建的虚拟机(Homestaead)和生产环境阿里云 CentOS 系统安装 Node.js 的步骤,以及 npm 安装依赖的不同之处。 使用源码编译的方式安装 node.js.首先将机子上的 Node.js 卸载,我直接贴上 Stack Overflow 上提供的步骤: 1.卸载 npm 和 Node.js 先卸载 npm,命令是:sudo npm uninstall npm -g,然后卸载 Node.js. Running which node will return something like /path/bin/node...
安装express.js 如果你安装了npm,安装变得很简单,只需要在终端中运行下面的代码即可: 代码如下:npm install express -gd -g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装。如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹),你可以透过以下指令来比较两者的不同:代码如下:npm list -gnpm list 如果没有npm,那么我可以使用github来git下来最新的express。好了,现在你可以通过express te...
一,node.js的作用, I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出。鼠标移动,在屏幕上看到鼠标的移动。终端的输入,和看到的输出。等等) node.js想解决的问题,(处理输入,输入,高并发 。如 在线游戏中可能会有上百万个游戏者,则有上百万的输入等等)(node.js适合的范畴:当应用程序需要在网络上发送和接收数据时Node.js最为适合。这可能是第三方的API,联网设备或者浏览器与服务器...
参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能。实际使用时报socket hang up错误。 后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了)。 完整的代码如下(遇到类型问题的同学可以做个参考):代码如下: var querystring = require(querystring), http = require(http); var data = querystring.stringify({info:hi,...
方法说明: 将制定数据填充到buffer中。 语法:代码如下: buffer.fill(value, [offset], [end])接收参数: value 将要填充的数据 offet 填充数据的开始位置,不指定默认为 0 end 填充数据的结束位置,不指定默认为 buffer 的 长度。 例子:代码如下: //例子1中,不指定填充内容的起止位置 var b = new Buffer(50); b.fill("h"); //例子2中,指定了填充内容的起止位置 var b = new Buffer(50); var ...
前言 本文主要给大家介绍了关于Node.js 流(stream)的使用方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 流是基于事件的API,用于管理和处理数据,而且有不错的效率.借助事件和非阻塞I/O库,流模块允许在其可用的时候动态处理,在其不需要的时候释放掉. 使用流的好处举一个读取文件的例子:使用fs.readFileSync同步读取一个文件,程序会被阻塞,所有的数据都会被读取到内存中.换用fs.readFile读取文件,程序不会被阻...
前面的话 本文将使用NodeJS实现较复杂应用的路由功能 结构项目结构如下代码如下 功能【router.js】 // 加载所需模块 var http = require(http); var url = require(url); var fs = require(fs);var host = 127.0.0.1; var port = 8080;http.createServer(function(req,res){var pathname = url.parse(req.url).pathname;console.log(Request for + pathname + received.);function showPaper(path,status){var content = fs.read...
作为一个好的Restfull Api不仅在于service url的语义,可读性,幂等,正交,作为http状态码也很重要,一个好的Http Status Code给使用者一个很好的响应,比如200表示正常成功,201表示创建成功,409冲突,404资源不存在等等。所以在做一个基于node.js+mongodb+angularjs的demo时发现node.js express没有提供相应的辅助类,但是本人不喜欢将201,404这类毫无语言层次语义的东西到处充斥着,所以最后决定自己写一个,但是同时本人也很懒,...
我正在制作一个数学教学网页(NodeJS后端和Angular前端).我想要一种特殊的用户(创建者)来创建数学练习.这些练习之一如下所示:Marie has ${nums[0]} oranges and ${nums[1]} apples. How many fruits does she have?现在,我希望创建者编写一个如下的数字生成函数:const generate = () => {const nums = new Array(2).fill(0).map(e => Math.floor(Math.random() * 10)return { nums: nums, answer: nums.reduce((p, c) => p + c, 0...
前言在node.js中,提供了一个path某块,在这个模块中,提供了许多使用的,可被用来处理与转换路径的方法与属性,将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。下面我们就来详细介绍下关于Node.js中的路径处理模块path。获取路径/文件名/扩展名 获取路径:path.dirname(filepath) 获取文件名:path.basename(filepath) 获取扩展名:path.extname(filepath)获取所在路径例子如下:var path = require(pat...
我一直都很不愿意扯 nodejs 的流,因为从第一次看到它我就觉得它的设计实在是太恶心了。但是没办法,Stream 规范尚未普及,而且确实有很多东西都依赖了 nodejs 的流来实现的,所以我也只能捏着鼻子硬着头皮来扯一扯这又臭又硬的 nodejs 流对象了。nodejs 自带了一个叫 stream 的模块,引入它便可以得到一组流对象构造器。现在我只说最简单的 stream.Readable。其实用过 nodejs 的几乎都接触过 Readable 的实例,只是平时没太在意而...
# 安装 nodejs ?以下介绍的是命令行安装方法,读者也可以到 nodejs官网 上下载安装最新版。sudo apt-get install nodejs-legacy sudo apt-get instatll npm升级npm为最新版本 sudo npm install npm@latest -g往往用命令行安装的nodejs不是最新版本,而且升级nodejs并不是件非常简单的事情;这时我们需要用非常好用的nodejs版本管理模块n sudo npm install -g n通过 模块n 安装指定版本的 nodejs sudo n latest sudo n stable sudo ...
Node.js 事件循环详解及实例 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.Node.js 有多...