http://www.oschina.net/translate/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb 英文原文:A comparison between Misultin, Mochiweb, Cowboy, NodeJS and Tornadoweb As some of you already know, I’m the author of Misultin, an Erlang HTTP l…
http://4096.info/2014/05/28/mochiweb%E4%B8%8Ecowboy%E4%BD%BF%E7%94%A8json/ 服务器原来的socket实现机制更改为ranch了,这样可以专注维护自己的事情了.其实,之 所以采用ranch是因为我使用bigwig来在网页中对状态进行监控,而bigwig使用的是cowboy 和ranch,cowboy也使用的是ranch,这样,代码中就存在了两个http的框架,mochiweb和 cowboy,而看了ranch的结构,感觉很不…
Erlang cowboy websocket 服务器 原文见于: http://marcelog.github.io/articles/erlang_websocket_server_cowboy_tutorial.html 本文不是原文的简单翻译,是参考原文,根据我的理解和实践写出来的.本文的源码见于: https://github.com/marcelog/erws 1 引言 Erlang可以用来实现一个websocket服务器.cowboy这样框架可以完成这个任务,使我们不必关注webs…
一.基础介绍 cowboy是一个小巧.快速.模块化的http服务器,采用Erlang开发.其中良好的clean module使得我们可以扩展到多种网络协议之中,cowboy自带的有tcp和ssl,而也有一些人提供了smtp等的扩展. cowboy的特点: 1.代码少. 2.速度快. 3.模块化程度高,transport和protocol都可轻易替换. 4.采用二进制语法实现http服务,更快更小. 5.极易嵌入其它应用. 6.有dispatcher,可以嵌入FastCGI PHP 或者是 Rub…
Python伪开发者对于搜狐云景的测评 本人是GAE和OpenShift的狂热爱好者,玩过各种国外PaaS.某次想搞个稍微复杂点的Python Web程序,需要比较好的网络传输速度,就试图找前PM(Project Manager)要个国内的VPS耍一把.前PM表示近来搞了个搜狐云景的公测激活码,让我先试试,于是就有了我在SCE的第一个奇怪的Python应用. PS: SCE是搜狐云景是搜狐公司自主研发的与语言无关.可提供弹性伸缩服务的公有云PaaS平台,现致力发展成为最开放的PaaS平台. (无…
在大家的印象中,相当长一段时间里,JavaScript是一门脚本语言,一般不能成为某个项目的担纲主角,作用只是在浏览器里帮忙校验校验输入是不是正确,响应一下鼠标.键盘事件,或者让某个HTML元素动起来,搞点特效等等,相当于在剧组中帮忙递递毛巾,打打开水. 后来,AJAX这种数据交互模式的出现,催生了Web2.0的繁荣,让Web页面也能实现像桌面程序一样的效果,用户体验大大提升,但是,它想发挥价值,还必须和另外一个主角(浏览器)一起出场,如果和浏览器的关系搞得不好(不兼容),那么,后果会是非常糟糕…
Erlang cowboy 入门参考 cheungmine,2014-10-28 本文翻译自: http://ninenines.eu/docs/en/cowboy/HEAD/guide/getting_started/ 我没有按原文逐句翻译.仅仅是我自己的理解,力求简单明了.本文程序在RHEL6.4上写成并运行,参考下面的文章,安装Erlang: erlang在redhat上的安装 1 引言 Erlang不仅仅是一门语言,更是一个操作平台.Erlang开发者很少写单独的模块,而是写库和程序,然…
http://www.tuicool.com/articles/vuymei 不知道为什么就看了cowboy代码,就继续看了下去了. 分析一下吧,主要写写cowboy 的acceptor pool 的实现 cowboy的源码比mochiweb的更简洁, acceptor pool是通用的,cowboy提供了tcp的协议实现.而应用层协议也是通用的,cowboy提供了http协议的实现. 一.循例分析一下 cowboy 的线程树结构,从它启动的.入手 (现在先列出来cowboy启动的流程,等下说工…
1. ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的,   所以饿了吗推出了基于VUE2.0的组件库,它的名称叫做element-ui,提供了丰富的PC端组件    ElementUI官网:http://element-cn.eleme.io/#/zh-CN   ElementUI入门 <!DOCTYPE html> <html> <head> <meta charse…
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()); console.log('[cpus] 每个CPU/内核的信息:'+JSON.stringify(os.cpus())); console.log('[endianness] CPU 的字节序:'+os.endianness()); console.log('[freemem] 操作系统空闲内存…
Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\Administrator\\Desktop\\event.js'; console.log('文件名带后缀:',path.basename(path_str)); console.log('文件名不带后缀:',path.basename(path_str, '.html')); console.l…
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是肯定的. 但是还好,我们有## node-inspector ##来帮助我们解决一部分的调试问题,但是对于异步能力很强的NodeJs它还是有点力不从心. node-inspector 安装node-inspector 依旧是通过npm来全局安装node-inspector npm install -…
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linux下Nodejs安装(完整详细) 如果想解决问题的话,输入下面的命令即可 sudo ln -s /usr/bin/nodejs /usr/bin/node npm intsall安装依赖报错 在package.json中添加: "private": true 拓展见:npm WARN pa…
一.child_process child_process是NodeJs的重要模块.帮助我们创建多进程任务,更好的利用了计算机的多核性能. 当然也支持线程间的通信. 二.child_process的几个API 异步: child_process.exec(command[, options][, callback]) child_process.execFile(file[, args][, options][, callback]) child_process.fork(modulePath[…
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABASE mydb1; mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | mydb1 | | performance_sch…
我在访问时光网.网易云音乐等网站时,发现将它们页面中的一些图片URL修改一下就可以得到不同尺寸的图片,于是思考了其实现方案,我的思路是:URL Rewrite + 实时处理 + 缓存,对用户请求的URL进行重写,然后利用图片处理类库对图片进行处理,接着缓存该尺寸图片并输出到浏览器.使用PHP和Node.js实现了一遍,基本达到了需要的效果. 1.Nginx+Node.js(express)实现 URL重写 这里Nginx主要是做一个URL重写和反向代理的功能,配置如下所示: location ~…
我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file.js 在上一篇文章nodejs进阶3-路由处理中有完整的内容) readImg:function(path,res){         fs.readFile(path,'binary',function(err,  file)  {             if  (err)  {        …
1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) 接收参数: urlStr                                       url字符串 parseQueryString                   为true时将使用查询模块分析查询字符串,默认为false 我们通过解析HTTP请求,从中提取出请求的URL以及…
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的方向,思考能为商户或者业务做点什么来体现其身价值,这样的转变是机会也是挑战,我一直相信在特别的环境下能迅速磨练出了跨岗位技能和综合素质,然而一路走来也发现了自己的短板(所谓的产品思维),并非想提升就可以,有时候感到自己很无能. 于是这样熬过来,暗示自己保持积极乐观的心态,平时使用一些通用的方法来提醒…
前言 城堡总是从内部攻破的.再强大的系统,也得通过人来控制.如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设. 下面分享一个例子,利用应用仓库,渗透到开发人员的系统中. 应用仓库 应用仓库对于开发人员再熟悉不过了.apt-get,brew,yum,npm ... 无非就是个命令行版的 App Store,方便各种工具以及依赖库的安装. 他们大致原理都差不多.今天讲解的是 NodeJS 应用仓库 -- NPM 的安全试探. NPM 平台 如果 NodeJS 只能单机运行,那就和 WS…
概述: NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢? 本文就个人使用经验对这些问题进行探讨. 一. NodeJS的特点 我们先来看看NodeJS官网上的介绍: Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node…
1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进阶3教程<nodejs进阶(3)—路由处理>重介绍的url模块,我们知道接收方法如下这样写 //----------------6_param------------------------------------       var http = require('http');        …
之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件.我就是按照网上源码的安装方式去操作编译后的文件,结果坑了好久好久. (一) 编译好的文件 像上图中红色框里面的就是已经编译好的文件,选择好对应的linux版本下载即可,简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,…
下面将带领大家一步步学习nodejs,知道怎么使用nodejs搭建服务器,响应get/post请求,连接数据库等. 搭建服务器页面输出hello world var  http  =  require('http');   http.createServer(function  (request,  response)  {       response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});       …
之前有简单介绍nodejs的一篇文章(http://www.cnblogs.com/fangsmile/p/6226044.html) HTTP服务器 Node内建有一个模块,利用它可以很容易创建基本的HTTP服务器.请看下面案例. my_web_server.js 1 var http = require('http'); 2 http.createServer(function (req, res) { 3 res.writeHead(200, {'Content-Type': 'text/…
什么是Node.js? 很多初学者并没有真正地理解Node.js到底是什么.nodejs.org网站中的描述也没有多大帮助. 首先要清楚Node不是一个Web服务器,这十分重要.它本身并不能做任何事情.它无法像Apache那样工作.如果你希望它成为一个HTTP服务器,你必须借助它内置库自己编写.Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime. 安装Node.js Node.js的安装十分容易.只需在这里下载满足你需要的安装程序即可. 已安装好N…
前面的话   搜索了好多文档后,才成功地安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nodejs官网提供了node的msi文件,但本人在win7系统下多次尝试,均无法安装成功,且会有your system has not been modified...的提示.最终本人使用了另一种方法成功安装了nodejs 1.下载node.exe 2.下载最新版本的npm zip格式压缩包 3.在硬盘某个位置,如D盘…
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数,+new Date()写法的效果和new Date().getTime()效果相同. 在需要频繁使用时间戳的场景中,需要关注方法性能,这…
描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有url非法字符或者下划线点符号开头.scope在模块name中使用时,以@开头,后边跟一个/ .package.json中,name的写法如下: @somescope/somepackagename scope是一种把相关的模块组织到一起的一种方式,也会在某些地方影响npm对模块的处理. npm公共仓库…
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫package.json的文件来描述我们模块的名称.版本等信息. 我们贡献出去的程序模块,可能也依赖了别人所编写的模块,所以需要在package.json中写明我们依赖了哪些模块,便于别人安装. 简单的nodejs程序可以通过 node xxx.js 来运行,当我们希望直接在控制台中使用xxx命令运…