Nodejs Hello kraken.js

Nodejs Hello kraken.js

My Blog:

http://blog.gfdsa.net/2013/11/30/nodejs/hellokraken/

前言

kraken.js 由paypal 公司开源的一个用于快速开发基于Express.js框架应用的快速开发工具, 因为kraken 并没有在Express.js基础上更改多少东西,只是在原来的express基础上补充了一些约定开发的规则, 让开发根据便捷.

<!–more–>

你好,世界!

要创建一个kraken 项目只需要非常简单的三步走:

  1. 安装必备工具

Linux or Mac <br/> sudo npm install -g generator-kraken <br/> Windows <br/> npm install -g generator-kraken

  1. 创建kraken项目 <br/> 只需要一行代码,然后,看着提示语,输入一些东西,一个项目就这样创建完毕.

yo kraken

  1. 运行kraken项目 <br /> 还是只需要一行代码

npm start

以上三行代码即可,完成一个kraken项目的创建了.

注意事项:

  1. yo kraken 你输入项目名字的时候,会在当前项目创建与该项目名字一样的文件夹,记得cd 进去文件夹再去运行 npm start

  2. 注意NODE_ENV的设置,kraken的配置是会根据当前NODE_ENV进行变化,所以如果跑不通的时候最好检查一下当前的NODE_ENV.默认情况下,NODE_ENV没有设置或者设置了development,启动的时候,kraken 会默认加载./public/templates 下的模板,设置了其他值的时候,就会去加载./.build/templates 而这个当你在kraken 项目目录下运行grunt build 就会出现.build 该目录了用于部署在NODE_ENV设置为production或者其他值的时候加载.

查看你当前系统的NODE_ENV环境

Linux or Mac

echo NODE_ENV

Windows

echo %NODE_ENV%

约定开发

个人看法 kraken 与其说是一个框架好不如说它只不过提供了灵活,方便的用于构建Express应用的方式.

配置(/config)

kraken./config 约定了两类配置文件:

  1. app.json 用于配置,host, port, i18n ,express 等.
  2. middleware 用于对默认中间件的配置,目前支持的中间件有appsec, compiler, session, errorPages, static, 详细的参数配置请阅读官方文档,这里就不赘述了.

除此以外,kraken 还约定支持根据NODE_ENV自动匹配相应的配置文件,规则是:

app-NODE_ENV.json

例如, 当前NODE_ENVdevelopment, 你在目录下有一个app-development.json的文件话,就会优先读取该文件的配置.

控制器(/controllers)

路由控制

kraken 默认会自动加载./controllers 下的文件,进行路由控制,个人觉得,这个真心省心.接下来的写法,与express 完全一样!

module.exports = function (server) {
    server.get('/customer', function (req, res) {
       res.send('Hello World');
    });
};

如果,你是express的开发者,就会越感发现,kraken更多的是补充了express不足的地方,除此以外跟平常用express开发毫无区别.

自定义中间件 和 周期控制

kraken 将一个请求的周期定义为三级:

  1. app.requestStar 请求开始
  2. app.requestBeforeRoute 进行路由前
  3. app.requestAfterRoute 路由后输出

整个实现异常简洁, 有兴趣的可以去阅读源码:

appcore.js line: 172 - 198

定义一个中间件的方法与express的时候一样,只不过,现在多了一步,我们要把中间件放到哪个位置而已

约定在./middleware/lib 下建一个文件,beforeRouteMiddleware.js

module.exports = function () {_
    var reqCounts = 0;
    return function (req, res, next) {
        req.counts = reqCounts | 0;
        reqCounts++;
        next();
    };
};

然后在: index.js

var beforeRouteMiddleware =  require('./lib/middleware/beforeRouteMiddleware')

app.requestBeforeRoute = function requestBeforeRoute(server) { server.use(beforeRouteMiddleware()); };

与express的中间件功能一样,每请求一次,都会触发中间件. 与原生的express不同krarken提供了更有条例的中间件定义约定.

总结

kraken 还有一些比较实用的功能,例如安全,还有本地化,不过这些内容,官方文档已经写得很详细了,这里就不作过多的说明. 在我看来,kraken 只干了一件事,就是把express条理化了,kraken并没有对express进行更多的封装,所以,只要会express的入手kraken 就像喝水一样简单. 而kraken 提供的约定,能够更有效率的开发Node.js的web项目.


6 回复

Nodejs Hello kraken.js

前言

kraken.js 是 PayPal 公司开源的一个用于快速开发基于 Express.js 框架的应用的工具。kraken.js 并没有在 Express.js 的基础上进行大量改动,而是在原有的 Express.js 上添加了一些约定,使得开发更加便捷。

你好,世界!

要创建一个 kraken.js 项目,只需遵循以下三个步骤:

  1. 安装必备工具

    • Linux 或 Mac:
      sudo npm install -g generator-kraken
      
    • Windows:
      npm install -g generator-kraken
      
  2. 创建 kraken.js 项目 创建项目非常简单,只需运行:

    yo kraken
    

    运行后,根据提示输入项目名称和其他相关信息,项目将被创建。

  3. 运行 kraken.js 项目 项目创建完成后,只需运行:

    npm start
    

注意事项

  • 在运行 yo kraken 时,输入的项目名称会创建一个同名文件夹,因此需要先 cd 进入该文件夹再运行 npm start
  • 注意 NODE_ENV 的设置,kraken.js 会根据 NODE_ENV 加载不同的配置文件。默认情况下,NODE_ENV 设置为 development 时,会加载 ./public/templates 目录下的模板;设置为其他值时,会加载 ./.build/templates 目录下的模板。

查看当前系统的 NODE_ENV 环境变量:

  • Linux 或 Mac:
    echo $NODE_ENV
    
  • Windows:
    echo %NODE_ENV%
    

约定开发

配置 (/config)

kraken.js 在 ./config 目录下约定以下配置文件:

  • app.json: 用于配置 host、port、i18n、express 等。
  • middleware: 用于配置默认中间件,如 appsec, compiler, session, errorPages, static 等。

此外,kraken.js 支持根据 NODE_ENV 自动匹配相应的配置文件,例如当 NODE_ENVdevelopment 时,会优先加载 app-development.json 文件。

控制器 (/controllers)

kraken.js 会自动加载 ./controllers 目录下的文件进行路由控制。例如,定义一个简单的路由控制如下:

// controllers/home.js
module.exports = function (server) {
    server.get('/hello', function (req, res) {
        res.send('Hello World!');
    });
};
自定义中间件和周期控制

kraken.js 将请求周期定义为三级:

  1. app.requestStart: 请求开始
  2. app.requestBeforeRoute: 进行路由前
  3. app.requestAfterRoute: 路由后输出

定义一个中间件的方法如下:

// middleware/lib/beforeRouteMiddleware.js
module.exports = function () {
    var reqCounts = 0;
    return function (req, res, next) {
        req.counts = reqCounts | 0;
        reqCounts++;
        next();
    };
};

然后在 index.js 中使用该中间件:

// index.js
var beforeRouteMiddleware = require('./lib/middleware/beforeRouteMiddleware');

app.requestBeforeRoute = function requestBeforeRoute(server) {
    server.use(beforeRouteMiddleware());
};

总结

kraken.js 通过提供一些约定和扩展功能,使得基于 Express.js 开发的项目更加条理化和高效。对于熟悉 Express.js 的开发者来说,学习 kraken.js 几乎是无缝衔接的。


JS框架太多了,以后再看。

没有安装成功。

一路顺利但是 运行浏览的是偶提示Content bundle not found: undefined ,令人很尴尬啊, 看到一大堆下载的东西。。

我运行的时候都很顺利啊…怎么大伙各种bug …

针对“Nodejs Hello kraken.js”这个帖子的内容,Kraken.js 是 PayPal 开源的一个用于快速开发基于 Express.js 框架的应用程序的工具。下面是基于帖子内容的一些示例代码和步骤来创建一个简单的 Kraken.js 应用程序。

创建 Kraken.js 应用程序

1. 安装必备工具

  • 对于 Linux 或 Mac:
    sudo npm install -g generator-kraken
    
  • 对于 Windows:
    npm install -g generator-kraken
    

2. 创建 Kraken 项目

yo kraken

这将引导你创建一个项目,并询问项目名称和其他配置信息。创建完成后,确保进入项目目录:

cd your-project-name

3. 运行 Kraken 项目

npm start

示例代码

假设我们想要在 Kraken.js 应用中添加一个简单的路由,使得访问 /hello 路径时返回 “Hello World!”。

  1. 打开 ./controllers 目录下的文件(如果没有,可以在该目录下新建一个文件),比如命名为 helloController.js

  2. 编写路由控制代码:

// ./controllers/helloController.js
module.exports = function (server) {
    server.get('/hello', function (req, res) {
        res.send('Hello World!');
    });
};
  1. 如果上述文件是新创建的,还需要在 index.js 中引入这个控制器:
// ./index.js
var helloController = require('./controllers/helloController');

app.on('middleware:after', function (server) {
    server.get('/', helloController);
});
  1. 保存并重启应用(如果已经在运行)。

现在,当你访问 http://localhost:8000/hello 时,应该能看到页面返回 “Hello World!”。

注意事项

  • 确保当前的 NODE_ENV 设置正确,以避免加载错误的配置。
  • 你可以通过 echo $NODE_ENVecho %NODE_ENV% 来检查当前的环境变量。

通过上述步骤,你可以使用 Kraken.js 快速搭建一个简单的 Node.js 应用,并且按照 Kraken 的约定来管理你的应用。

回到顶部