UNPKG

2.41 kBJavaScriptView Raw
1var express = require('express');
2var path = require('path');
3var favicon = require('static-favicon');
4var logger = require('morgan');
5var cookieParser = require('cookie-parser');
6var bodyParser = require('body-parser');
7var debug = require('debug')('lab');
8
9var routes = require('./routes/index');
10
11var app = express();
12
13// view engine setup
14app.set('views', path.join(__dirname, 'views'));
15app.set('view engine', 'jade');
16
17app.use(favicon());
18app.use(logger('dev'));
19app.use(bodyParser.json());
20app.use(bodyParser.urlencoded());
21app.use(cookieParser());
22app.use(express.static(path.join(__dirname, 'public')));
23
24var RE_MIME = /^(?:multipart\/.+)|(?:application\/x-www-form-urlencoded)$/i;
25
26
27function hasBody(req) {
28 var encoding = 'transfer-encoding' in req.headers,
29 length = 'content-length' in req.headers
30 && req.headers['content-length'] !== '0';
31 return encoding || length;
32};
33
34function mime(req) {
35 var str = req.headers['content-type'] || '';
36 return str.split(';')[0];
37};
38
39
40var busboy = require('connect-busboy');
41// load the middleware
42app.use(busboy());
43// define a POST route
44app.post('/', function(req, res) {
45
46 req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
47 console.log(filename);
48 });
49 req.busboy.on('field', function(key, value, keyTruncated, valueTruncated) {
50 console.log(key, value);
51 });
52 req.busboy.on('finish', function() {
53 console.log('OVER!');
54 res.send('OK!');
55 });
56 req.pipe(req.busboy);
57
58});
59
60app.use('/', routes);
61
62/// catch 404 and forward to error handler
63app.use(function(req, res, next) {
64 var err = new Error('Not Found');
65 err.status = 404;
66 next(err);
67});
68
69/// error handlers
70
71// development error handler
72// will print stacktrace
73if (app.get('env') === 'development') {
74 app.use(function(err, req, res, next) {
75 res.status(err.status || 500);
76 res.render('error', {
77 message: err.message,
78 error: err
79 });
80 });
81}
82
83// production error handler
84// no stacktraces leaked to user
85app.use(function(err, req, res, next) {
86 res.status(err.status || 500);
87 res.render('error', {
88 message: err.message,
89 error: {}
90 });
91});
92
93
94module.exports = app;
95
96app.set('port', process.env.PORT || 3000);
97
98var server = app.listen(app.get('port'), function() {
99 debug('Express server listening on port ' + server.address().port);
100});
101
102