public
anonymous / app.js
Created

  • Download Gist
app.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
 
/**
* Module dependencies.
*/
 
 
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
 
var app = express();
 
var mongoose = require('mongoose');
 
mongoose.connect('mongodb://localhost/photo_app');
var schema = new mongoose.Schema({
name: String,
path: String
});
 
var Photo = mongoose.model('Photo', schema);
 
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser({uploadDir:'./uploads'}));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
 
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
 
var path = require('path');
var fs = require('fs');
var join = path.join;
 
var submit = function (dir) {
return function(req, res, next){
var img = req.filez.photo.image;
var name = req.body.photo.name || img.name;
var path = join(dir, img.name);
console.log(req.files.photo, req.body.photo);
fs.rename(img.path, path, function(err){
if (err)
return next(err);
Photo.create({
name: name,
path: img.name
}, function (err) {
if (err)
return next(err);
res.redirect('/');
});
});
};
};
 
app.get('/', routes.index);
app.get('/users', user.list);
 
app.post('/foobar', submit('./'));
 
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
index.jade
Jade
1 2 3 4 5 6 7 8 9 10
extends layout
 
block content
h1= title
p Welcome to #{title}
| <form method='post' enctype='multipart/form-data' action="/foobar">
| <input type='text' name='photo[name]'/>
| <input type='file' name='photo[image]'/>
| <input type='submit' value='Upload'/>
| </form>

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.