演讲:Node.js 软件开发实践分享

2013年12月5日,我在 51CTO 举办的 『Cloud框架和 Node.js 技术沙龙』上进行了主题为「Node.js 软件开发实践分享」的演讲。

内容包括 Node.js 的模块系统,异常捕捉和错误处理同步操作简化和异步工作流控制,以及生产环境运行和日志这四个方面的主题,同时还介绍了我在 Node.js 开发过程中的一些有趣的技术小故事。

非常感谢 51CTO和百度提供的 Node.js 技术交流的机会,也非常感谢参会同学的积极参加和提问。

应有关参会同学的要求,把演讲 PPT 贴了出来,下面是 PDF 格式的链接:
Node.js 软件开发实践分享

12.11 更新:51CTO网站把这次活动放到头条了,并且放出了所有的 ppt 和演讲视频,地址是:http://mobile.51cto.com/exp/cloudasalon1206/

使用 Node.js 和 MongoDB 开发高性能微信公众平台应用

发布仅两年即坐拥三亿用户的微信无疑是当前国内最炙手可热的移动互联网应用,腾讯也据此稳稳拿到一张移动互联网的“船票”。微信公众平台的推出,则让其他企业和个人有机会通过微信渠道将业务和品牌推广给上亿的微信用户,可以大大地减少宣传成本;同时也可以充分利用微信公众平台接口的能力和移动终端特性,开发出创新的产品和商业模式。

使用微信公众平台我们既可以向订阅用户群发消息,也可以编程实现对用户发送的消息进行自动回复,同时还可以管理用户的订阅和取消事件等;支持的消息类型既包括文本,语音,图片,位置信息和链接,也可以是丰富的图文信息。而且未来肯定还会不断地增加新的功能,比如移动支付。

因此从本质上来看,微信公众平台就是一个豪华版的移动互联网时代的“梦网”,想想当年的“移动梦网”可是拯救了整个的国内互联网公司,微信公众平台的发展未来绝对可以用“不可限量”来形容。

这个 presentation 主要与大家交流微信公众平台应用开发的相关内容,涵盖接入,设计,开发,调试和测试等全流程,将会对微信公众平台接口和能力进行全面而详尽的剖析。

我们使用流行的 Node.js + MongoDB 的组合进行讲解和演示,最终使大家都能够开发出支持百万用户以上的高性能可伸缩的微信公众平台应用。

PPT

原文地址:http://www.tfan.org/wechat-on-nodejs-and-mongodb/

如何让 Node-express 支持 XML 形式的 POST 请求?

express 是基于 connect 开发的,使用 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-www-form-urlencoded, 以及 multipart/form-data。 也就是说不支持对 XML 形式的包体进行解析。

但是以 XML 格式作为接口数据交换还是有人在用,比如 Microsoft 的 Bing Translator HTTP API,以及腾讯微信的公众平台接口。之前用 Node.js 实现调用 Bing Translator 接口时用过 Node.js 的 xml2js 库,可以把 XML 转换成 JSON 格式以方便我们的程序进行解析。这里我们同样可以使用 xml2js 扩展 express 以使其支持 XML 形式的请求。

参考:

  • https://gist.github.com/davidkrisch/2210498
  • http://expressjs.com/api.html#bodyParser
  • http://stackoverflow.com/questions/11002046/extracting-post-data-with-express
  • https://groups.google.com/forum/?fromgroups=#!topic/express-js/6zAebaDY6ug

在 CentOS 上使用 Apache 的 Proxy mode 使 Node.js 和 Apache 共用 80 端口

最近用 Node.js 开发一个微信公共平台接口,由于微信公众平台接口配置目前仅支持默认的 80 端口,而我的 CentOS 服务器已经在使用 Apache 运行一些其他业务了。这样就必须要求 Node.js 能够和 Apache 共用 80 端口。

我们可以使用 Apache 的 Proxy mode 来解决这个问题。

(更多…)