CNode

nodejs-kissy 项目简介

Bbachi发布于15 年前最后回复12 年前0 回复8978 浏览0 收藏

注:本文最初发表在ued.taobao.com上,是从前端开发的角度来实践nodeJS,希望能给大家带来一些启迪。 由于NodeJS和web前端一样采用javascript作为开发语言,而且同样具有无阻塞(non-blocking)和事件驱动(event-driven)等特点,Node.js 采用 V8 引擎,同样,Node.js 实现了类似 Apachenginx 的web服务,让你可以通过它来搭建基于 JavaScript 的 Web App,这样就可以让“后端”具有某些前端的功能——渲染页面。 你可以通过我们前些天 team 内的一个分享来了解下 NodeJS: NodeJS简介 nodejs-kissy 项目 KISSY 是淘宝网开发的一款轻巧灵活的JS框架,如今已经是1.1.7版本,并在淘宝网广泛应用,在浏览器端给我们带来更加清新的体验,今天让我们更进一步,我们 发起了nodejs-kissy 项目,你的 KISSY 程序可以无缝移植到服务器端了 ^_^ 从这里开始 nodejs-kissy 得益于 KISSY 轻巧的设计,核心模块可以很充分的解偶,所以对 KISSY 作简单hack就能够运行在 NodeJS 上。但开始之前应该首先准备好预装了 npm 的服务器(linux/FreeBSD/MacOS/cygwin),npm 是 NodeJS 软件包管理器,类似yum 和 apt-get,通过他来安装 NodeJS 的软件包会非常方便。 准备 npm: curl http://npmjs.org/install.sh | sh 如果你的账户没有权限则先准备好目录权限: sudo chown -R $USER /usr/local 安装成功后就可以通过 "npm install package_name" 命令来安装 NodeJS 软件包了 安装 Nodejs-KISSY 的依赖:服务器端没有浏览器环境,要运行js需要模拟真实的浏览器环境,因此 KISSY 需要依赖一些包: npm install jsdom npm install htmlparser npm install express npm install connect 安装Nodejs-kissy: npm install kissy 运行 “hello world”: 新建文件 helloworld.js var S = require('kissy').KISSY; S.ready(function(S){ S.log('hello world!'); }); 运行: node helloworld.js 更方便的移植? 你可能会好奇,服务器端没有浏览器,为什么KISSY能如此轻松的运行在服务器端?这主要是因为KISSY的模块加载机制是脱离浏览器环境的,也就 是说KISSY.use、KISSY.add、KISSY.app是和环境无关的,它只关系到你组织代码的方式和风格,另外,得益于足够原生态的 KISSY-DOM实现,KISSY只调用到domjs(domjs的高层api是面向YUI3设计的)的基础方法,所以DOM相关操作依然可以无缝嫁接 到服务器端,相对于YUI3核心模块的深层次耦合,KISSY的移植实在是太轻松了。 策略上的取舍 KISSY 基于“one for all”理念的core和粗粒度的widget,使得KISSY可以使用更少的"引入文件"来执行程序,而非必要一定采用combo(即使采用combo 性能未必提高多少),这样使得require的逻辑策略更简便。 所见即所得 和YUI3一样,KISSY-Loader 也可以非常方便的引入外部脚本,不管脚本是存放在服务器上,还是通过http请求到,开发者只要require fullpath即可,非常低碳,比如我可以这样运行: var S = require('kissy').KISSY; S.add({ 'menu':{ fullpath:'http://cdn/menu.js' } }).use('menu',function(S){ new S.Menu('#ID'); }); 总之,你在浏览器端怎么用 KISSY,你就在服务器端怎么写,接下来,nodejs-kissy 项目的主要工作是更多的测试和提高其健壮性。nodejs-kissy 和 KISSY 一样基于 MIT 协议,你可以通过 fork github 上的项目来参与 nodejs-kissy 的开发。

查看回复

回复 (0)

暂无回复,成为第一个参与讨论的人。
参与回复
登录后即可参与回复。登录