介绍
Geddy是一个全栈开源的MVC框架,基于ruby on rails方法,内置认证模块,passportjs和socket.io集成。在Geddy中创建实时安全应用程序只需要几个命令;它提供了一组非常大的生成器命令,这些命令通过命令行界面工作,自动执行大多数不重要的任务,例如创建模型,控制器,视图甚至身份验证或socket.io集成。在Geddy中,你只需要专注于主应用程序逻辑,让geddy处理其余的事情。 它还支持各种各样的模板引擎,默认使用EJS。您可以在创建新项目或资源时为项目指定模板引擎。 Geddy使用Node的内置集群模块,利用您的多核处理器。所以你的node.js应用程序不再是单线程应用程序,而是自动利用多个核心。安装
安装nodejs和npm的先决条件:sudo apt-get install python-software-properties python g++ make
如果您使用的是Ubuntu 12.10或更高版本,则还需要执行以下操作:
sudo apt-get install software-properties-common
添加PPA存储库,这是Joyent(Node.js的维护者)推荐的:
sudo add-apt-repository ppa:chris-lea/node.js
更新系统包列表:
sudo apt-get update
安装Node.js包括npm:
sudo apt-get install nodejs
安装geddy全球与jake
sudo npm install -g geddy
这里我们安装geddy全局,所以我们可以使用geddy生成器。
了解Geddy结构
每个基于MVC原则的geddy应用程序都有一个单独的目录和文件:模型,控制器和视图。 geddy应用程序的典型结构是Geddy Generators
Geddy生成器是可用于我们的命令列表,以便于我们的开发过程。 Geddy gen命令 - 它用于生成一个新的应用程序,模型,控制器,并为您做各种其他日常发展。geddy gen app your_app
这将创建一个名为您
在一个名为您的应用程序在你的工作目录
目录应用一个geddy应用程序。
geddy gen resource profile name:string
这将创建一个名为“profile”的资源(模型+控制器+路由),其中模型具有属性名称和类型字符串。如果你没有提到类型,它会自动设置为字符串类型。 您可以在此处提及您的属性,或者稍后手动将其输入位于app / models / profile.js的模型文件中。
geddy gen secret
此命令删除任何现有的秘密,并为您的应用程序创建一个新的秘密。会话密钥用于计算散列,所以没有秘密,访问会话将被拒绝,从而保护您免受会话劫持等。此命令不带参数
geddy gen controller
此命令创建一个控制器以及索引视图和访问控制器的路由
geddy gen model notes title:default content:string
此命令生成具有2个字符串属性(称为标题和内容)的模型。这里,在显示模型时使用默认属性。你可以做标题:int:default如果你想要一个整数类型为默认属性。在geddy中,始终创建ID属性,如果没有提及,则是缺省属性。此ID与创建的相应mongodb文档匹配。
geddy gen scaffold personal_detail name:string
此命令支架的资源称为个人
细节加上个人细节的实体模型视图 ,您可以添加,查看和删除浏览器本身单个条目。 在构建脚本时,您还可以选择指定要用于创建的视图的模板引擎。您可以使用swig,jade,handle或mustache模板引擎,而如果没有提及,则使用EJS。例如:
geddy gen scaffold personal_detail --jade
使用Facebook身份验证创建应用程序
支架示例应用程序。geddy gen app Edupi
移动到目录。
cd Edupi
基于passport.js的认证到您的应用程序。
注意:你不应该脚手架认证到旧的应用程序,因为它可能会覆盖你的代码。
geddy auth
转到developers.facebook.com并按照以下步骤获取应用程序的Secret密钥。
点击应用程序
点击创建新的应用程序(必须注册)
输入应用程序名称和其他相关信息,然后单击继续。
点击网站与Facebook登录并输入服务器的网址或IP。您可以输入您的虚拟服务器的IP像http://192.168.1.2:80/或输入http://localhost:4000/ ,如果你正在测试上的LocalServer应用。如果您看到不同的屏幕,请点击编辑应用以访问此屏幕。 记下应用程序ID和应用程序密钥,然后单击保存更改。
注意:你不应该与任何人分享你的App ID和App秘密。我做到了尽量减少任何混乱。 现在回去你的服务器的目录和在Edupi文件夹打开config / secrets.json文件。
{
"passport": {
"successRedirect": "/",
"failureRedirect": "/login",
"twitter": {
"consumerKey": "XXXXXX",
"consumerSecret": "XXXXXX"
},
"facebook": {
"clientID": "XXXXXX",
"clientSecret": "XXXXXX"
},
"yammer": {
"clientID": "XXXXXX",
"clientSecret": "XXXXXX"
}
}
}
这里,successRedirect是在成功授权的情况下用户将返回的路径;故障重定向是在授权失败时用户将被重定向的网址。请注意,您只能通过相关链接。例如,设置“successRedirect”:“
HTTP://本地主机:4000 /登录/ ”将返回一个错误。您可以更改这两个网址,以防您更改路由。 输入AppId作为clientID,App Secret作为Client Secret,如下所示。
{
"passport": {
"successRedirect": "/",
"failureRedirect": "/login",
"twitter": {
"consumerKey": "XXXXXX",
"consumerSecret": "XXXXXX"
},
"facebook": {
"clientID": "670657392948407",
"clientSecret": "1beefd26e84f7e7adb4eb8a371c41af8"
},
"yammer": {
"clientID": "XXXXXX",
"clientSecret": "XXXXXX"
}
}
}
你可以得到twitter和yammer应用程序设置,并输入如上所示,让他们工作。您可以搜索它们,以防您在找到它们时遇到任何困难。 现在保存文件并运行服务器使用
geddy app
和瞧,现在你有Facebook的集成内置到你的应用程序。在认证时,两个项目被添加到用户的会话,其是userId(用于用户广告authtype的mongodb ID,对于这种情况将是facebook)。 您可以在控制器中检查这些变量,以在虚拟服务器上执行请求之前对其进行身份验证。
在Geddy去HTTPS
Geddy通过SSL / TLS或SPDY支持HTTPS。要启用它,只需将证书的详细信息添加到配置文件。需要键和证书选项,而可用于https和spdy模块的其他选项是可选的。 要添加SSL / TLS,只需将以下行添加到您的配置文件:// ...
, ssl: {
key: 'config/key.pem',
cert: 'config/cert.pem'
}
// ...
要添加对SPDY的支持,请添加以下内容:
// ...
, spdy: {
key: 'config/key.pem',
cert: 'config/cert.pem'
}
// ...
这里假设key.pem和cert.pem放置在config文件夹中。其余的由geddy处理。
进入生产模式
创建一个名为app.js的文件,其中包含以下内容。var geddy = require('geddy');
geddy.start({
environment: 'production'
});
然后使用Forever来运行你的服务器,防止你的应用程序停止运行 永远安装
sudo npm install forever -g
然后,启动您的应用程序,转到终端中包含app.js的目录并运行
forver start app.js
现在,您的应用程序将自动启动,以防万一它崩溃。
提交者:
巴努•Chaudary