不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻。

之前线上一直是Node v0.12.1v0.8.6版本,觉得太低,因为目前都已经v0.12.1了,这么大的一个跨度,再不升级可能就真的跟不上时代了。


于是找了伟大的OP同学协助将各线上线下环境都升级一遍,当然,升级的步骤还是线下升级,观测一段时间没问题了再更新的线上。

结果,线下更新后完全没发现问题,更新到线上后,时不时Fatal,想想也是醉了;毕竟有些API已经deprecated了!


举俩栗子

1、Response write after end

线上用的静态文件是自己用Node写的,其中有一段儿代码是这个样子的:

#javascript #node.js 浏览(0) 阅读全文 评论

有时候就是有这样的需求,Nodejs做webserver,从浏览器端上传文件到后端服务器,Node层只是做一个数据中转,如果在这个过程中,Node webserver需要对数据进行适当加工,然后再Post到后端,那么就得在Node层模拟文件上传了。


首先,通过浏览器上传文件,PostData格式是长着个样子的:

屏幕快照 2014-11-22 下午9.18.45.png

如图,每一组数据其实就是用“-----WebkitFormBoundary.....”分隔开的,最后再用这个分隔符结束,而且,这个分隔符完全是可自定义的。

每一段提交数据,则通过

一直想把Blog迁移到Nodejs上来,实在是忙,抽不开时间,好在这个难得的国庆,没出去玩儿,看了几天冰与火之歌斯巴达克斯,剩下两天时间,可以倒腾下这个Nodejs的迁移了,也把遇到的几个问题简单Mark一下:

  • 关于框架:市面上Nodejs的框架还不少,不过既然工作中也是用的Node,那就都用同一个吧,正好可以同步的升级维护框架。

  • 关于数据:按理说Nodejs+Mongodb是绝配,不过我之前的功能都是PHP+MySQL

#node.js #Nginx #Blog迁移 浏览(1342) 阅读全文 评论(13)
/**
 * 读取node.js命令行输入内容的小工具
 *
 * @api
 *  exports.startStepByStep;
 *  exports.readLine;
 *
 * @example
 *  var prompt = require('prompt.js');
 *  prompt.startStepByStep({
 *      step1 : function(){
 *          prompt.readLine('请输入账号:',function(username){
 *          });
 *      },
 *      step2 : function(){
 *          prompt.readLine('请输入密码:',function(password){
 *          },true);
 *      }
 *  },0);
 *
 * @author zhaoxianlie
 */

#node.js #prompt #命令行输入 浏览(1311) 阅读全文 评论(2)

今天在自己的bluehost虚拟主机上装了个nodejs的环境,安装方法在这里mark一下,有需要的,可以copy过去用:

#!/bin/sh
 
#这是你的大名
YOUR_NAME=`whoami`
  
#随便创建一个目录用来下载nodejs
mkdir -p /home/$YOUR_NAME/download
  
#进去,并在该目录下载nodejs
cd /home/$YOUR_NAME/download
#我这里用的最新版本
wget http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
  
#解压node
tar zxfv node-v0.8.10.tar.gz > /dev/null
  
#进入node安装包的目录
cd node-v0.8.10
  
#配置,记得一定要指定prefix,而且目录得正确
./configure --prefix=/home/$YOUR_NAME/
  
#在来make一把,参数很关键
make -C out BUILDTYPE=Release 
  
#最后一步,安装
make install
#bluehost #node.js #nodejs.install.sh 浏览(1815) 阅读全文 评论