
/* ----------------------------------------------------------------- */

{
  "name": "test-app",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": "3.2.6",
    "jade": "*"
  }
}

/* ----------------------------------------------------------------- */

// Include the Node HTTP library
var http = require('http');
// Include the Express module
var express = require('express');
// Create an instance of Express
var app = express();

// Start the app
http.createServer(app).listen(3000, function() {
  console.log('Express app started');
});

// A route for the home page
app.get('/', function(req, res) {
  res.send('Welcome!');
});

/* ----------------------------------------------------------------- */

html
  head
    title Welcome
  body Welcome!

/* ----------------------------------------------------------------- */

html
  head
    title Hello
  body
    b Hello!

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();

// Set the view engine
app.set('view engine', 'jade');
// Where to find the view files
app.set('views', './views');

// A route for the home page - will render a view
app.get('/', function(req, res) {
  res.render('index');
});

// A route for /say-hello - will render a view
app.get('/say-hello', function(req, res) {
  res.render('hello');
});

app.get('/test', function(req, res) {
  res.send('this is a test');
});

http.createServer(app).listen(3000, function() {
  console.log('App started');
});

/* ----------------------------------------------------------------- */

window.onload = function() {
  document.getElementById('smile').innerHTML = ':)';
};

/* ----------------------------------------------------------------- */

#content {
  width: 220px;
  margin: 0 auto;
  text-align: center;
  border: 1px solid #ccc;
  box-shadow: 0 3px 4px #ccc;
  padding: 5px;
}

/* ----------------------------------------------------------------- */

html
  head
    title Welcome
    script(src='javascripts/main.js')
    link(rel='stylesheet', href='stylesheets/style.css')
  body
    #content
      img(src='images/logo.png')
      p WELCOME
      #smile

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();

app.set('view engine', 'jade');
app.set('views', './views');

// Mark the public dir as a static dir
app.use(express.static('./public'));

app.get('/', function(req, res) {
  res.render('index');
});

http.createServer(app).listen(3000, function() {
  console.log('App started');
});

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();

app.set('view engine', 'jade');
app.set('views', './views');

app.use(express.static('./public'));
// Add the responseTime middleware
app.use(express.responseTime());

app.get('/', function(req, res) {
  res.render('index');
});

http.createServer(app).listen(3000, function() {
  console.log('App started');
});

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();

app.set('view engine', 'jade');
app.set('views', './views');

app.use(express.static('./public'));
app.use(express.responseTime());
// Add the errorHander middleware
app.use(express.errorHandler());

app.get('/', function(req, res) {
  // Call an undefined function to generate an error
  fail();
});

http.createServer(app).listen(3000, function() {
  console.log('App started');
});

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();

app.set('view engine', 'jade');
app.set('views', './views');

app.use(express.static('./public'));
app.use(express.responseTime());
// Explicitly add the router middleware
app.use(app.router);
// Add the errorHander middleware
app.use(express.errorHandler());

app.get('/', function(req, res) {
  // Call an undefined function to generate an error
  fail();
});

http.createServer(app).listen(3000, function() {
  console.log('App started');
});

/* ----------------------------------------------------------------- */

title = My Awesome App
port = 3000
message = You are awesome!

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();
// Load the iniparser module
var iniparser = require('iniparser');
// Read the ini file and populate the content on the config object
var config = iniparser.parseSync('./config.ini');

app.set('view engine', 'jade');
app.set('views', './views');

app.use(express.static('./public'));
app.use(express.responseTime());
app.use(app.router);
app.use(express.errorHandler());

app.get('/', function(req, res) {
  // Pass two config variables to the view
  res.render('index', {title:config.title, message:config.message});
});

http.createServer(app).listen(config.port, function() {
  console.log('App started on port ' + config.port);
});

/* ----------------------------------------------------------------- */

html
  head
    title #{title}
    script(src='javascripts/main.js')
    link(rel='stylesheet', href='stylesheets/style.css')
  body
    #content
      img(src='images/logo.png')
      p WELCOME
      p #{message}
      #smile

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var fs = require('fs');
var app = express();

app.use(express.logger({
  format: 'tiny',
  stream: fs.createWriteStream('app.log', {'flags': 'w'})
}));

...

/* ----------------------------------------------------------------- */

{
  "development": {
    "db_host": "localhost",
    "db_user": "root",
    "db_pass": "root"
  },

  "production": {
    "db_host": "192.168.1.9",
    "db_user": "myappdb",
    "db_pass": "!p4ssw0rd#"
  }
}

/* ----------------------------------------------------------------- */

var http = require('http');
var express = require('express');
var app = express();
var iniparser = require('iniparser');
var config = iniparser.parseSync('./config.ini');

app.set('view engine', 'jade');
app.set('views', './views');

app.use(express.static('./public'));
app.use(express.responseTime());
app.use(app.router);

// Setup for production environment
if ('production' == app.get('env')) {
  app.get('/', function(req, res) {
    res.render('index', {title:config.title, message:config.message});
  });
}

// Setup for development environment
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
  app.get('/', function(req, res) {
    res.send('development mode test');
  });
}

// Common setup for all the environments
app.get('/test', function(req, res) {
  res.send('works on all environment');
});

http.createServer(app).listen(config.port, function() {
  console.log('App started on port ' + config.port);
});

/* ----------------------------------------------------------------- */

// Setup for production environment
app.configure('production', function() {
  app.get('/', function(req, res) {
    res.render('index', {title:config.title, message:config.message});
  });
});

// Setup for development environment
app.configure('development', function() {
  app.use(express.errorHandler());
  app.get('/', function(req, res) {
    res.send('development mode test');
  });
});

// Common setup for all the environments
app.configure(function() {
  app.get('/test', function(req, res) {
    res.send('works on all environment');
  });
});
