We are going to use and to make our lives quite a bit easier
package.json
{
"name" : "node_demo",
"version" : "0.0.1",
"dependencies" : {
"express" : "latest",
"jade" : "latest"
}
}
var express = require('express');
var webServer = express.createServer();
webServer.get('/', function(req, res){
res.send('Hello Internet!');
});
webServer.listen('3000');
we are going to use JADE It's a templating langage great for node!
webServer.set('view engine', 'jade');
yup it is that easy
!!!
head
body
h1 An Awesome Site in Node!
!=body
h3 INDEX!!!
webServer.get('/', function(req, res){
res.render('index');
});
$ npm install
$ node server.js
var memes = [];
var create = function(vals, cb) {
memes.push({
name: vals.title,
link: vals.link
});
cb(memes[memes.length -1])
}
var get = function(id) {
if (id) {
return memes[id];
}
return memes;
}
exports.get = get;
exports.create = create;
views/meme/index.jade
h2 all memes
- for( var i =0; i < memes.length; ++i )
h4= memes[i].name
img(src="#{memes[i].link}");
br
a(href="/meme/new") add a new Meme
views/meme/new.jade
form(action="", METHOD="POST")
label(for="title") Name of the Meme
br
input(name="title", type="text", placeholder="enter the title of the meme")
br
label(for="link") Link to the meme
br
input(name="link", type="text", placeholder="enter the link to the meme")
br
input(type="submit")
var Meme = require('./models/Meme.js'); //require our model
webServer.use(express.bodyParser()); // this will let us get the POST vars out of the request
webServer.get('/meme', function(req, res){
res.render('meme', {'memes': Meme.get()});
});
webServer.get('/meme/new', function(req, res){
res.render('meme/new');
});
webServer.post('/meme/new', function(req, res){
Meme.create(req.body, function(){
res.redirect('/meme');
});
});
just goto http://0.0.0.0:3000/meme/