Created
September 5, 2015 17:23
-
-
Save Raincal/047369e7b826ffaef0df to your computer and use it in GitHub Desktop.
node+express Meadowlark
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require('express'); | |
var path = require('path'); | |
var favicon = require('serve-favicon'); | |
var logger = require('morgan'); | |
var cookieParser = require('cookie-parser'); | |
var bodyParser = require('body-parser'); | |
var routes = require('./routes/index'); | |
var users = require('./routes/users'); | |
var app = express(); | |
// view engine setup | |
app.set('views', path.join(__dirname, 'views')); | |
app.set('view engine', 'jade'); | |
// uncomment after placing your favicon in /public | |
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); | |
app.use(logger('dev')); | |
app.use(bodyParser.json()); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
app.use(cookieParser()); | |
app.use(express.static(path.join(__dirname, 'public'))); | |
app.use('/', routes); | |
app.use('/users', users); | |
// catch 404 and forward to error handler | |
app.use(function(req, res, next) { | |
var err = new Error('Not Found'); | |
err.status = 404; | |
next(err); | |
}); | |
// error handlers | |
// development error handler | |
// will print stacktrace | |
if (app.get('env') === 'development') { | |
app.use(function(err, req, res, next) { | |
res.status(err.status || 500); | |
res.render('error', { | |
message: err.message, | |
error: err | |
}); | |
}); | |
} | |
// production error handler | |
// no stacktraces leaked to user | |
app.use(function(err, req, res, next) { | |
res.status(err.status || 500); | |
res.render('error', { | |
message: err.message, | |
error: {} | |
}); | |
}); | |
module.exports = app; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by Yujia on 2015/9/5. | |
*/ | |
var express = require('express'); | |
var app = express(); | |
var handlebars = require('express-handlebars'); | |
app.engine('.hbs', handlebars({ defaultLayout: 'main', extname: '.hbs'})); | |
app.set('view engine', '.hbs'); | |
app.set("port", process.env.PORT || 3000); | |
app.use(express.static(__dirname + '/public')); | |
var fortunes = [ | |
"Conquer your fears or they will conquer you.", | |
"Rivers need springs.", | |
"Do not fear what you don't know.", | |
"You will have a pleasant surprise.", | |
"Whenever possible, keep it simple." | |
]; | |
app.get('/', function(req, res){ | |
res.render('home'); | |
}); | |
app.get('/about', function(req, res){ | |
var randomFortune = fortunes[Math.floor(Math.random() * fortunes.length)]; | |
res.render('about', { fortune: randomFortune }); | |
}); | |
//404 | |
app.use(function(req, res, next){ | |
res.status(404); | |
res.render('404'); | |
}); | |
//500 | |
app.use(function(err, req, res, next){ | |
console.error(err.stack); | |
res.status(500); | |
res.render('500'); | |
}); | |
app.listen(app.get('port'), function(){ | |
console.log('Express started on http://localhost:' + app.get('port')); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "Meadowlark", | |
"version": "1.0.0", | |
"description": "", | |
"main": "index.js", | |
"dependencies": { | |
"express": "^4.13.3", | |
"express-handlebars": "^2.0.1" | |
}, | |
"devDependencies": {}, | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1" | |
}, | |
"author": "Raincal", | |
"license": "ISC" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
塒NG | |