Regular Expression
app.get('/items/:id([0-9]+)', function(req, res){
res.send('item no: ' + req.params.id);
});
file
app.get('/hello.txt', function(req, res){
res.sendfile(__dirname + '/public/hello.txt');
});
public folder読み込み
app.use(express.static(__dirname + '/public'));
– app.useで読み込む処理をmiddlewareと言う
var logger = require('morgan');
app.use(logger('dev'));
app.use(function(req, res, next){
console.log('my custom middleware');
next();
})
$ sudo npm install nodemon -g
$ nodemon app
$ npm install ejs
app.get('/', function(req, res){
res.render('index');
});
app.get('/', function(req, res){
res.render('index', {title: 'title'});
});
<body> <h1><%= title %></h1> hello from index ejs! </body>
app.param('id', function(req, res, next, id){
var users = ['yamda', 'nakamura', 'kobayashi'];
req.params.name = users[id];
next();
});
app.get('/hello/:id', function(req, res){
res.send('hello ' + req.params.name);
})
app.get('/bye/:id', function(req, res){
res.send('hello ' + req.params.name);
})
### Post
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// ディレクトリ
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
// middleware
// app.use(app.router);
var logger = require('morgan');
app.use(logger('dev'));
app.use(express.static(__dirname + '/public'));
app.get('/new', function(req, res){
res.render('new');
});
app.post('/create', function(req, res){
//
res.send(req.body.name);
})
view, routingの設計をServerサイドの言語ではなく、JavaScriptで書いていける。