Paypal为了抗衡其他支付服务商,有迫切的快速开发的需求。
开始的时候,Paypal选用了Nodejs作为快速开发原型架构。
在内部有越来越多的新项目采用Nodejs后,就有了KrakenJS–一套基于Express可以快速开发Web应用的Nodejs框架。
Kraken基于Express,Express是NodeJS最流行的Web开发框架。
Express基于Connect,Connect是一个基于http模块的工具集。
从Node原生的http模块到Connect,再到Express,最后到Kraken。每一次都是对之前的封装,每一次的封装都为特定的开发者提供了更为方便的开发技巧。
二. 为什么要使用KrakenJS?
- 基于目前最流行的NodeJS Web框架Express,但结构更清晰合理,更加符合MVC开发思想。
- /config,存放应用程序和中间件配置
- /controllers,控制器
- /lib,存放开发者自定义的库文件和其他代码
- /locales,特定语言内容
- /models,模型
- /public,公共的网络资源
- /public/templates,服务器和浏览器端模板
- /test,存放单元和功能测试用例等
- index.js,应用程序入口文件
- json配置文件,方便生产环境与开发环境的快速切换。
- 针对web开发提供了方便的工具集和可独立插件,且容易更换。
Lusca:安全模块
And so on…
kraken自带的模板是LinkedIn维护的Dust,如果想换成更为简单和常用的Jade,只需:
a. 在package.json的dependencies中添加jade依赖,并
npm install
b. 在config/app.json中的view engine配置为jade
"express":{ "view engine": "jade" }
c. 编写对应jade模板即可,无须修改控制层(名字一致后缀改变)
三. 快速入门
- 安装生成器
<br />npm install -g generator-krakennode
- 生成一个项目
yo kraken
- 启动服务器
npm start
或node index.js
四. 一些尝试
- 增加一个用户查询服务:
1). 配置数据库
a). 安装mongoose
b). 配置config/app.json
"databaseConfig": { "host": "localhost", "database": "test" }
c). 编写lib/database.js,用于初始化mongo连接
'use strict';
var mongoose = require('mongoose');
var db = function(){
return {
config: function(conf){
mongoose.connect('mongodb://' + conf.host + '/' + conf.database);
var db = mongoose.connection;
db.on('error',console.error.bind(console,'connection error:'));
db.once('open',function callback(){
console.log('db connection open');
});
}
};
};
module.exports = db();
d). 在index.js添加初始化配置代码
var db = require('./lib/database');
在configure方法中next(null)方法前添加
db.config(nconf.get('databaseConfig'));
2). 编写models/user.js
'use strict';
var mongoose = require('mongoose');
var userModel = function(){
var userSchema = mongoose.Schema({
userid: Number,
name: String,
hometown: String
});
return mongoose.model('dynamic',userSchema);
};
module.exports = new userModel();
3). 编写controllers/user.js
'use strict';
var UserModel = require('../models/user');
module.exports = function(app){
app.get('user',function(req,res){
var userid = req.query.userid;
console.log('userid: '+userid);
UserModel.find({userid:userid},function(err,users){
if(err) {console.log(err);}
var model = {users : users};
res.json(200,model);}
});
})
};
- 写一个统计请求的服务:
在Connect / Express中,有一个中间件的概念。使用中间件,可以完成类似AOP或拦截器的需求。
1). 编写服务提供者lib/countReq.js
'use strict';
module.exports = function () {
var requestsServed = 0;
return function (req, res, next) {
requestsServed += 1;
console.log(requestsServed + ' Request Served!');
next();
};
};
2). 在index.js中相应位置调用
// Fired at the beginning of an incoming request
app.requestStart = function requestStart(server) {
server.use(countReq());
// Run before most express middleware has been registered.
};
相关推荐
"kraken-marko-sample" 这个标题揭示了这是一个关于使用 Kraken JS 框架和 Marko 模板引擎的示例应用。Kraken JS 是一个基于 Node.js 的轻量级、模块化的应用框架,旨在帮助开发者构建可扩展的、高性能的后端服务。...
最后,手册可能会包含一些案例研究或应用示例,展示如何利用KRAKEN进行特定场景下的声传播模拟。这些实例有助于读者将理论知识应用于实际问题,进一步提升解决实际问题的能力。 总的来说,《KRAKEN Normal Mode ...
Kraken 基于 express 构建,实现对环境变量的感知、动态配置、高级中间件和应用生命周期的事件通知。 基本使用方法: 'use strict'; var express = require('express'), kraken = require('kraken-js'); ...
通过这些数据,Kraken可以构建三维声场模型,预测声波传播路径、衰减以及反射、折射等现象,从而为海洋探测、通信、噪声控制等领域提供重要支持。 在实际应用中,Kraken不仅限于基本的K和phi计算,还可以扩展到更...
GitKraken中文语言包 目前支援版本: 8.7.0 至 Release 下載 strings.json 取代檔案 Windows: %LOCALAPPDATA%\gitkraken\app-8.7.0\resources\app.asar.unpacked\src\strings.json Mac: /Applications/GitKraken.app/...
在实际操作中,"kraken+.pdf"这个文件很可能是Kraken的使用手册或者教程文档,包含了详细的步骤和示例,是学习和应用Kraken的重要参考资料。建议仔细阅读,结合实际操作,以便于更好地理解和运用软件功能。
GitKraken6.5.0典藏版
《KrakenC与Kraken:探索声场与声传播的计算方法》 在现代海洋工程、水下声学研究以及环境监测等领域,准确理解和模拟声波在水下的传播至关重要。"krakenc_tl.zip_KrakenC_kraken_kraken与krakenc_kraken声场_声...
"kraken计算传播损失的程序及使用说明书"主要聚焦于使用特定软件Kraken来计算传播损失,这是一种在信号处理和通信领域中常见的任务。Kraken是专为Matlab2014b平台设计的工具,它能够帮助研究人员和工程师分析和模拟...
**Kraken.js 深度解析** Kraken.js 是一个基于 Node.js 的轻量级、模块化的前端应用框架,由 PayPal 开源。...通过学习和实践,开发者可以掌握 Kraken.js 的精髓,从而构建出高效、可扩展的 JavaScript 应用。
GitKraken是一款备受开发者喜爱的跨平台图形化Git客户端,其6.5.1版本的发布继续提供了免费的版本供用户使用。...无论你是个人开发者还是团队的一员,GitKraken都能帮助你更有效地管理和维护代码仓库。
kraken压缩包密码恢复软件
解压"kraken-master"后,开发者将找到这个项目的源代码,包括配置文件、脚本、样式表、JavaScript文件、模板和可能的示例应用。根据项目需求,开发者可以修改这些文件,添加自己的功能,然后通过构建工具将源代码...
Gitkraken是一款强大的分布式版本控制系统Git的图形化客户端,它以其直观、高效的用户界面和丰富的功能深受开发者喜爱。本文将详细介绍Gitkraken 7.5.5版本及其安装教程。 一、Gitkraken简介 Gitkraken是一款跨平台...
GitKraken是一款强大的跨平台Git客户端,专为提高开发者在版本控制中的效率而设计。它以其用户友好的界面和丰富的功能集赢得了广泛赞誉。GitKraken v6.5.0 是针对Mac用户的特定版本,提供了对最新Git特性和优化的...
GitKraken是一款流行的跨平台Git客户端,以其直观的用户界面和高效的版本控制功能深受开发者喜爱。在本案例中,我们讨论的是GitKraken的v6.5.1 Ubuntu版本,这是该软件免费版本的一个里程碑。这个版本适用于Ubuntu ...
GitKraken是一款流行的分布式版本控制系统Git的图形化客户端,它以其直观的用户界面和强大的功能在开发者社区中受到广泛欢迎。6.5.1版本是GitKraken的一个更新,据描述,这个版本已经在某些环境中经过了测试,并且...
### gitKraken常见问题解决方案 #### 一、GitKraken基本概念 在开始解决GitKraken常见问题之前,我们首先需要了解几个基本的概念,这些概念对于理解后续的问题及其解决方案至关重要。 1. **Workspace(工作区)**...
总结来说,要在Mac上免费使用GitKraken 8.3.1,你需要下载安装包,创建免费账户,配置你的Git服务,以及个性化设置GitKraken的各项功能。遵循这些步骤,你就可以充分利用这款强大的Git客户端,享受愉快的版本控制...
Kraken使用说明中文版的知识点主要涵盖声学领域中声场计算的相关理论及软件操作。具体来说,可以详细解析如下: 1. 简正波方法:在声场计算中,简正波方法是一个基本理论框架,它要求解决与深度相关的波动方程。简...