DEV I/O FOR
Comunidade de desenvolvedores de Fortaleza
NUG-CE
Grupo de usuários Node.js do Ceará
4k+ stars
700+ fork
Cícero Viana
Desenvolvedor web entusiasta MEAN e Ionic Framework
@cicerohen
Framework open source para desenvolvimento de sites, aplicações e APIs em Node.js usando Express e MongoDB
Projeto CMS Node.js em número de forks, stars e commits
4k+ stars
700+ fork
Model
View
Controller
Estrutura padrão de um projeto Keystone JS
project/
models/
Post.js /* Model */
User.js /* Model */
public/
fonts/
images/
js/
styles/
routes/
views/
index.js /* Controller */
post.js /* Controller */
templates/
views/
index.jade /* View */
post.jade /* View */
.env /* Enviromment variables */
keystone.js /* Starts application */
package.jsonFramework server side para aplicações Node.js
Object Data Mapping(ODM) para MongoDB
NoSQL Database
Modele de forma simples e rápida.
var keystone = require('keystone');
var Types = keystone.Field.Types;
var User = new keystone.List('User'); /* Criando o model */
/*Adicionando fields ao model */
User.add({
name: {
type: Types.Name,
required: true,
index: true
},
email: {
type: Types.Email,
initial: true,
required: true,
index: true
},
password: {
type: Types.Password,
initial: true,
required: true
}
},
'Permissions', { /* Permissões do Usuário */
isAdmin: { type: Boolean, label: 'Can access Keystone', index: true }
});
/*Registrando o model na aplicação */
User.register();HTML puro ou template engines
Por default, Kesytone usa Jade como template engine
doctype html
html
head
meta(charset="utf-8")
meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(http-equiv="X-UA-Compatible" content="IE=edge")
title= title || 'KeystoneJS'
link(rel="shortcut icon", href="/favicon.ico", type="image/x-icon")
link(href="/styles/site.css", rel="stylesheet")Template engine by Mozilla
Template engine
Template engine
Com toda a simplicidade do Express e Node.js
kesytone.set('routes', require('./routes'));
var importRoutes = keystone.importer(__dirname);
var controllers = importRoutes('./controllers');
app.get('/', controllers.index);
app.get('/blog/:category?', controllers.blog);
app.get('/blog/post/:post', controllers.post);
app.get('/gallery', controllers.gallery);
app.all('/contact', controllers.contact);Aplicação MEAN
Keystone
models/
routes/
Admin UI
Keystone oferece uma interface amigável e simples para o gerenciamento de conteúdo da sua aplicação
Cloud image service, upload, storage & CDN
npm install -g yo
npm install -g generator-keystone
mkdir project && cd $_
yo keystone
node keystone.js
KeystoneJS Started: KeystoneJS is ready on port 3000
http://localhost:3000