控制异步回调利器 - async 串行series,并行parallel,智能控制auto简介

async 作为大名鼎鼎的异步控制流程包,在npmjs.org 排名稳居前五,目前已经逐渐形成node.js下控制异步流程的一个规范.async成为异步编码流程控制的老大哥绝非偶然,它不仅使用方便,文档完善,把你杂乱无章的代码结构化,生辰嵌套的回掉清晰化.async 提供的api包括三个部分:(1)流程控制 常见的几种流程控制.(2)集合处理 异步操作处理集合中的数据.(3)工具类 .github 开源地址:https://github.com/caolan/async安装方法: npm install async使用方法: var async=require('async')

yeoman 安装和使用 - 快速构建web应用 (下)

之前有一篇讲了yeoman 工具安装和简易使用,你可以从这里点击查看 伟大的传送带这一片分享下生成的这个后端web框架什么时候使用?结构包括什么?各部分如何工作?什么时候使用这个框架:当你是个前端,当你专注与某个富客户端应用时,当你需要后端服务器提供数据而你不会或者懒得编写服务器端程序时...本人是在学习angular.js 时,也就是做一个富客户端应用时,后端可能只是根据api获取数据,所以方便快捷的使用了 yeoman 来生成一个web架构.这个架构包括了哪些东西?app 目录是框架的主要目录,包含了静态资源(fonts,images,styles) angular.js 需要提供的视图(

MongoDB数据插入insert和save操作

原始出处:http://jzfjeff.blog.51cto.com/1478834/990699在说MongoDB数据插入操作之前,我们先来简单了解下它的数据逻辑结构.MongoDB的逻辑结构是一种层次结构。主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。文档(document)由键/值对构成,像{a:1};{s:"abc"}等,它是MongoDB核心单元.MongoDB的文档(document),相当于关系数据库中的一行记录。多个文档组成一个集合(collection),相当于关系数据库的表。多个集合(colle

node.js 和其他服务器端语言相比优势在哪?

node.js 是一个服务器端运行JavaScript脚本的环境,这个环境下保持了客户端JavaScript的api一致,并且强制使用单进程单线程模式下工作的方式也与运行在浏览器宿主下的javascript保持一致,看似没有其他服务器端语言的任何优势,错了,上面提到的单进程单线程模式其实就是它的一大优点.单线程+单进程(1)程序大部分api与客户端javascript保持一致(当然服务器端javascript可以随意执行io操作及调用一些系统层面的接口)(2)javascript语言历史悠长,门槛不高,涉及到javascript语言的工程师多如牛毛(3)单线程单进程模式促使程序执行上下文不需要

yeoman 安装和使用 - 快速构建web应用(上)

Yeoman是由Paul Irish、Addy Osmani、Sindre Sorhus、Mickael Daniel、Eric Bidelman和Yeoman社区共同开发的一个项目。它旨在为开发者提供一系列健壮的工具、程序库和工作流,帮助他们快速构建出漂亮、引人注目的Web应用。它不只是一个工具,还是一个工作流。它其实包括了三个部分yo、grunt、bower,分别用于项目的启动、文件操作、包管理。Yo: Yo是一个项目初始化工具,可以生成一套启动某类项目必需的项目文件。Bower: 一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、C

给电脑换源 npm 国内镜像 cnpm

npm 是node.js 环境下的包管理器,非常强大智能.生活这这片神奇的土地上,各种奇葩手段屡见不鲜啊.为什么要换源? npm 官方站点http://www.npmjs.org/并没有被墙,但是下载第三方依赖包的速度让人着急啊!就拿阿里云环境来说,有时npm 一个包也需要耐心等待......等待过去也许是原地踏步,也许就是安装失败.幸运的是,国内有几个镜像站点可以供我们使用,本人在使用http://www.cnpmjs.org/速度非常快,镜像站会实时更新,为我们节省了好多时间.如何给本机换源呢?(1)通过 config 配置指向国内镜像源npmconfigsetregistryhttp:/

npm install canvas 各种依赖,各种错误 转投npm install ccap 来生成验证码

canvas 模块是npm提供的一个第三方包,国内环境安装慢的话请给npm换国内源,点击查看,用来生成图片.在本博客的应用场景是生成验证码.前端时间阿里云上使用 ubuntu 系统,本地mac OS ,安装 canvas 及各种依赖貌似很顺利,最近从ubuntu 换到了 centOS 后,进过几小时的挣扎,canvas 环境还是没有安装成功!他的依赖很多,最好按照官方wiki提供的文档来安装.wiki文档地址:https://github.com/LearnBoost/node-canvas/wikiwiki 提供的安装向导包括2部分,红框内的为不同操作系统需要安装的依赖. 红框下面是云环境需

NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图

如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express 3.0本书实例背景是 Express 2.0 而如今升级到 3.0后去掉了一些老的方法也更新了一些新的,所以变化还是蛮大的.首先上一篇博客提到的一个问题:如何用Express 3.0 生成一个 ejs 模板项目前提是你已经下载了ejs包,如何下载,运行cmd 输入 npm install ejs -g2.0 下的语法是:express -t ejs microblog3.0下的语法是:express -e ejs microblog (-t已经失效,取而

mongoskin 学习总结

在node.js环境下使用mongoskin 操作mongoDB .mongoskin 的安装非常简单 npm install mongoskinmongoskin 的使用,上一篇博文已经说过,你可以返回去瞄一眼, 我是伟大的传送带下面的内容针对 mongoskin 操作 mongoDB 的api来说明:查这应该是所有数据库的灵魂,通过简单的api可以帮助我们从海量数据库总准备找到自己想要的数据.查询多条数据原生方法: find()使用: db.集合名.find([option]) [option] 为可选条件,可以空,也可以指定条件,如 {name:'xiaoxiao'}查

node.js 和 mongoskin 通过单体模式连接访问数据库

学习mongoskin时发现获取db对象时应用了单体模式,顺便温习一下.单体模式是设计模式里最简单的一个,也是最实用的一个.单体模式也叫单例模式,有个明显的特征,全局只允许初始化一次,应用场景:银行卡 ,银行系统中的每一张银行卡都是一个单体,全局只允许初始化一次,避免多终端(柜台,ATM,手机银行app,电话银行 )等同时操作存取款时而引起的数据不一致的问题.对于一个引用类型的单体对象,一个进程访问时通常会对此object加锁,保证数据同步,银行系统更要如此.看下mongoskin 连接mongoDB的代码吧.varmongoskin=require('mongoskin');

node.js 解析xml文件 - 为站点添加sitemap

针对前后几次blog不稳定(1)版本问题:从开始asp.net+access 到 php+mysql 到 node+mongoDB 到现在的 node+levelDB ,改版对于搜索引擎是很不友好的,直接导致搜索量下降,甚至被拉黑.(2)服务器问题,偶尔的不稳定或者相应超时,早先淘宝购买的非常便宜的小空间经常出现down机的情况,后来的openshift 被墙后,访问超时,转而投靠到bae下,没想到........目前阿里云服务器下,速度快,服务好,花点银子也比较省心.就是上面的种种原因吧,搜索引擎对本站收录一直不太理想,百度的索引量一直在升,但是搜索结果页明显是之前一版的快照,为啥子不更新呢

mac 如何设备全局变量$PATH

Unix加载环境变量来自3种配置文件.首先加载 /etc/profile 系统全局变量.接着是其他系统配置文件 如/etc/bashrc最后是用户自定义配置文件 ~/.bash_profile前2个是系统级的,针对所有用户,非root用户只有可读权限,修改时需要 sudo 获取root权限.而最后一个是针对当前用户的配置文件,建议修改此文件,如果当前用户目录下没有此文件 ,nano ~/.bash_profile 创建一个.如何给系统设置全局变量?加入你安装了mongoDB ,想在mac中添加mongod (服务端) mongo (客户端) 的全局环境变量.(1)首先找到你的mongoDB安装

mac 下用 brew 安装mongodb

mac 下安装mongoDB一般俩种方法.(1)下载源码,解压,编译,配置,启动 比较艰难的一种模式.(2)brew install mongodb ,然后就可以悠闲的品一口茶,顺便瞄一眼网易新闻,这是一种傻瓜模式.但傻瓜模式也有人为干预的时候,粗略说一下使用brew 安装mongodbzhangzhi@moke:~/code$ brew install mongodb此图说明已经安装成功,安装的目录就是 /usr/local/Cellar/mongodb/2.4.9第一次启动服务端,这里需要做一些准备工作.1.默认mongodb 数据文件是放到根目录 data/db 文件夹下,如果没有这个文

node.js 下将汉字写入Buffer时,Buffer长度如何控制?

先来温习下基础知识.一个字节(Byte)占8位(bit)一个英文字母占一个字节,一个汉字占2个字节.请注意,这里有个"坑" ,一个汉字占2个字节的前提是unicode编码,如果是utf-8 编码的时候,一个汉字占用几个字节呢? 翠花,上代码!varfs=require('fs'); var str='一段优雅的文字出现了'; bufstr = new Buffer(str.length2); for(j=0;j<str.length;j++){      bufstr.write(str[j],j2,'utf8'); } console.log(buf

海量数据大行其道的今天 node.js 在IO方面如何异步非阻塞

以其高性能,异步IO著称,当然node.js 在 stream 上的异步也非常到位. 我们一般理解的异步请求是这样的: 同时处理多件件事件 A,B,C,D,E,F,G .... 如果用.net语言去处理这些事情可能有2钟情况 (1) A,B ..... G 按照顺序一件一件处理,最后得到返回值. (2)开启多线程去同时执行多个事件. 而node是单线程处理语言,天生就不是富二代,资源还有限......上帝造物的时候是公平,当你发现关上一扇门的话,同时肯定会为你开一扇窗.所以node 有了异步回调. 所以node.js下的处理可能是这样的: A,B ...... G 依然是按照这个顺序处理,但是

回到顶部