这两天打算重写 Douban-FM-Express , 因为看到以前写的代码觉得惨不忍睹。想重新做一下设计, 重构一下代码, 也是对自己的一个锻炼吧。 期间看到以前写的json代理脚本又觉得不爽,于是重新写了一下, 放到 gist 上, 当作工具备份吧。

功能: 实现json代理转发,解决浏览器端的跨域问题。主要用来调试, 而不是生产项目上。本人不对其安全性负责。

Usage:

node app -d <sampleDomain> -p <listenPort>  

eg:

> node app -d dribbble.com -p 4000
# Proxy started on port 4000, API domain is set to: dribbble.com

Source:

Gist 地址:https://gist.github.com/cyrilis/9644051

这样测试的时候调用 目标网站api 的时候将域名替换为 localhost 加 监听端口, 就可以实现 json 调用了,免去跨域问题。当然项目部署的时候要将域名改回来哟。

Have a nice day!


看到很多人都在说 github 上的 node-webkit 项目很不错,可以将nodejs应用直接转为桌面客户端, 原理是内嵌一个webkit浏览器,所以在跨平台上面很方便。关键是可以调用nodejs, 这一点很是难得。所以手欠又折腾了一个豆瓣电台客户端。

豆瓣电台的桌面客户端并未公开,这里用的是别人通过抓包分析的豆瓣官方客户端的接口, 此外,Allocator 的介绍也很详细,参考了很多。感谢。

由于主要是json的调用,所以原本的后台nodejs在这个程序里面是不需要的, 我只用到了webkit浏览器。 但是浏览器调试的时候nodejs作为json代理还是帮了大忙。

界面大概是这样的:

Douban-FM-Express

可以登录,收藏,不再收听等。但是因为我太懒, 本来想加上切换频道什么的,以后会再加上。现在默认是私人频道。git clone 以后运行package里面的nw.exe 就可以了。界面什么的等以后有时间再改吧。

源码在 Github:

Update 2015-05-23:

已经改用 atom-shell(Electron):

http://cyrilis.com/posts/another-doubanfm-implementation