app.js
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 4000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.home);
app.get('/noticia', routes.noticias);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
Carpeta mod/bd
var mysql = require('mysql');
exports.conexion = function(){
return mysql.createConnection({
user: 'root',
password: '',
host: 'localhost',
port: 3306,
database: 'ninjacode' });
};
Carpeta routes/index.js
/*
* GET home page.
*/
var cnx = require('../mod/bd').conexion;
exports.home = function(req, res){
var objConexion = new cnx;
objConexion.query('SELECT * FROM noticias', function(error, resultados){
objConexion.end();
console.log(resultados);
res.render('index', { title: 'Express para Ninjacode.tv', noticias: resultados })
});
};
exports.noticias = function(req, res){
var objConexion = new cnx;
objConexion.query('SELECT * FROM noticias WHERE id ='+req.query.id, function(error, resultado){
console.log(resultado);
res.render('noticia', { title: 'Express para Ninjacode.tv', noticias: resultado })
});
};
Carpeta view/
layout.jade
doctype 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
link(rel='stylesheet', href='/stylesheets/bootstrap.css')
link(rel='stylesheet', href='/stylesheets/bootstrap-responsive.css')
script(src='/javascripts/jquery.js')
script(src='/javascripts/bootstrap.js')
body
section(class='container container-fluid')
header
block cabecera
nav
ul(class='nav')
li(class="active")
a(href="/") Home
li
a(href="#") Link
li
a(href="#") Link
section
block content
footer
block piepagina
noticia.jade
extends layout
block cabecera
h1 Noticia con #{title}
hr
block content
div(class='row-fluid')
div(class='span12')
div(class='span3 well')
a(href='http://www.google.com') Ir a google
div(class='span9 well')
each noticia in noticias
h2= noticia.titulo
div= noticia.fecha
hr
p= noticia.contenido
block piepagina
div ninjacode.tv
index.jade
extends layout
block cabecera
h1 Mi primera pagina con #{title}
hr
block content
div(class='row-fluid')
div(class='span12')
div(class='span3 well')
a(href='http://www.google.com') Ir a google
div(class='span9 well')
h2 Noticias
ul
each noticia in noticias
li
a(href='noticia/?id='+noticia.id)= noticia.titulo
block piepagina
div ninjacode.tv

1 marzo, 2013 at 11:06 PM • Permalink •
Excelente aplicación ahorita mismo la estoy estudiando y analisando para crear una Similar!! Gracias muy buen aporte
20 marzo, 2013 at 9:29 PM • Permalink •
17 abril, 2013 at 10:44 AM • Permalink •
Voy a probar esta programación a ver que tal funciona. Parece un poco complicada pero me gusta aprender nuevos modelos de programación. Saludos.