子匠_Zijor | 前端开发 / 程序媛 / 潜心学艺。

分类:Node.js

Mocha+Chai单元测试并没有想象中难

作为过来人,首先想说的是:不要怕!

刚从前端转来做Node的,从来没接触过单元测试,一听这个名词就觉得高大上。加上周围一些前端儿也基本没有接触过单元测试,总把单元测试看得比较遥远,中文教程也点到即止并有点过分重视命令行参数的讲解,让我迟迟不敢轻易入坑。…

+ 阅读更多

bluebird中的常用 Promsie API整理

bluebird是一个第三方的Promise类库,并且根据Promise A+规范实现,在ECMAScript 2015的基础上添加了很多扩展方法,如.spread()展开结果集、Promise.promisifyAll()将一个模块的属性方法包装成一个Promise实例。…

+ 阅读更多

原生Node.js实现静态资源服务器

事起缘由:上个月面试的时候,面试官问我如何写静态文件服务器。额,这个,这个不是用Express里面的static方法一行命令就能搞掂的咩,要压缩的话一个Compress中间件就搞掂了呀?。。如果非要自己写的话,不就是createServer,监听一下路由,再读取文件输出文本流到客户端不就OK了吗?。。。。咦。。。稍等!稍等!!好像哪里不对,。。。读文件也要分文件类型来输出呀,image和视频文件就不能用文本格式输出,要考虑MIME呀;直接读文件的话,肯定还会涉及到安全性问题;读取I/O操作成本辣么高,不考虑缓存和Gzip压缩会死人的呀;如果是大文件的话,可能还要考虑断点续传耶;卧槽,如果要用于商业项目的话日志也是要考虑的呀,容错什么的都不能少耶。。。。。。。。我的天呀,静态文件服务器并没有我一开始想的那么简单,一头脑风暴下来就发现这东西注意的地方很多,看来确实值得研究和实操一遍呀。…

+ 阅读更多

【译】node-mysql官方文档(未完结)

原文地址:https://github.com/mysqljs/mysql

安装

$ npm install mysql

有关前述0.9.x版本的版本信息,请访问V0.9分支

当有bug修正时,建议从Github上拉取最新版本代码,可执行如下命令:…

+ 阅读更多

Node.js中防止错误导致的进程阻塞的方法

在Node.js中,当某个回调函数发生了错误,整个进程都会崩溃,影响后面的代码执行。

Node.js这样处理,是因为在发生未被捕获的错误时,进程的状态就不确定。之后也就无法正常工作了。如果错误始终不处理的话,就回一直抛出意料之外的错误,这样不利于调试。…

+ 阅读更多

学习笔记:在Ubuntu中搭建Node.js开发环境

安装NodeJS

sudo apt-get update
sudo apt-get install nodejs

安装完成后执行nodejs -v,可查看Node.js是否安装成功。

有待继续完善 … ……

+ 阅读更多

学习笔记:node-mysql中防止SQL注入

备注: 本文针对mysqljs/mysql


为了防止SQL注入,可以将SQL中传入参数进行编码,而不是直接进行字符串拼接。在node-mysql中,防止SQL注入的常用方法有以下四种:…

+ 阅读更多

学习笔记: Ubuntu下安装搭建MySQL环境

缘由: 为方便日后查阅,故整理并记录之。

一. 安装 MySQL

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql // 安装php5-mysql是将php和mysql连接起来
+ 阅读更多

Node.js插件:supervisor自动监测文件修改

在node.js中,调试的时候,无论修改了代码的哪一部分,都需要重启Node.js服务之后才能生效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。…

+ 阅读更多

Jade使用笔记

安装

npm install jade

在Sublime Text开发的配置

Jade语法高亮显示:

Jade代码高亮显示需要安装的插件有:Jade

Jade编译为HTML:

首先需要全局安装Jade模块:

npm install jade
+ 阅读更多

Node.js学习笔记:路径操作

Path模块的官方介绍在此:https://nodejs.org/dist/latest-v6.x/docs/api/path.html

path.normalize(path)

path.normalize(path)

参数值为需要被转换的路径字符串。

该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行以下处理:…

+ 阅读更多

Node.js学习笔记:读写流Stream

一. 可读流: stream.Readable

在Node.js中,各种实现了stream.Readable接口的对象可以将对象数据读取为流数据,所有这些对象都集成了EventEmitter类的实例对象,在读取数据的过程中,将可能触发各种事件。…

+ 阅读更多

Node.js学习笔记: 文件权限和读写flag属性

老是记不住文件或目录权限的数值表达和字符表达。故整理出该笔记,方便以后查阅。

文件权限的数字类型

用数字来代表各个权限,各权限的分数对照表如下:…

+ 阅读更多

Node.js学习笔记:获取文件信息

一. 查看文件信息的方法:

fs.stat() && fs.lstat()

在fs模块中,可以使用fs.stat()方法或fs.lstat()方法查看一个文件或目录的信息,如文件的大小、创建时间、权限等信息。这两个方法的唯一区别是当查看符号链接文件的信息时,必须使用…

+ 阅读更多

Node.js的优秀模块整理: 调试篇

目录:

  • supervisor 监视代码改动
  • node-inspector 可使用浏览器调试Node.js

监视代码改动:supervisor

默认情况下,Node.js并不能监视代码的实时改动。当修改代码的某一部分时并不能实时看到修改后的效果,你必须终止Node.js再重新运行。这虽然有利于提高性能,但是并不利于开发调试。…

+ 阅读更多

CommonJS学习笔记

符合CommonJS规范的包应该具备以下特征:

  • package.json必须在包的顶层目录下;
  • 二进制文件应该在bin目录下;
  • JavaScript代码应该在lib目录下;
  • 文档应该在doc目录下;
+ 阅读更多

在项目开发中优雅地使用ES6:Traceur & Babel

ES6于2015年6月正式发布,各大浏览器的最新版本对 ES6 的支持可以查看https://kangax.github.io/compat-table/es6/

目前各大浏览器和开发环境对支持ES6的支持情况参差不齐,在实际项目开发中,我们仍旧不得不降级使用ES5语法以兼容各平台。幸好有几款工具可以将ES6语法转换成ES5,让我们在使用ES6新特性编写代码的同时,不需要考虑具体的兼容性情况。…

+ 阅读更多

Node.js学习笔记:Buffer模块处理

Node.js学习笔记:Buffer模块处理

标签(空格分隔): node.js


Buffer的官方API文档

Buffer像一个Array对象,主要用于操作字节。它是一个典型的JavaScript与C++结合的模块,将性能相关部分用C++实现,非性能相关的部分用JavaScript实现。…

+ 阅读更多

Node.js的HTTP模块

Node.js标准库提供了http模块,其中封装了一个高校的HTTP服务器和一个简单的HTTP客户端。http.Server是一个基于事件的HTTP服务器;http.request则是一个HTTP客户端工具,用于向HTTP服务器发送请求,实现内容抓取。…

+ 阅读更多

Node.js学习笔记:文件的常规操作

Node.js的文件操作部分的官方API文档如下:
https://nodejs.org/api/fs.html

fs模块是文件操作的封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX文件系统操作。与其他模块不同的是,fs模块中所有的操作都提供了异步和同步的两个版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync()。…

+ 阅读更多