mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-21 05:20:24 +08:00
242 lines
6.9 KiB
TypeScript
242 lines
6.9 KiB
TypeScript
/// <reference path="express-3.0.d.ts" />
|
|
|
|
declare var _, $;
|
|
|
|
import Express = module('express');
|
|
var express: Express;
|
|
var app: Express.ServerApplication;
|
|
|
|
function test_general() {
|
|
|
|
app.use(function (err, req, res, next) {
|
|
console.error(err.stack);
|
|
res.send(500, 'Something broke!');
|
|
});
|
|
app.use(express.bodyParser());
|
|
app.use(express.methodOverride());
|
|
app.use(app.router);
|
|
app.use(function (err, req, res, next) { });
|
|
app.use(express.bodyParser());
|
|
app.use(express.methodOverride());
|
|
app.use(app.router);
|
|
|
|
app.get('/', function (req, res) {
|
|
res.send('hello world');
|
|
});
|
|
|
|
app.listen(3000);
|
|
|
|
app.set('title', 'My Site');
|
|
app.get('title');
|
|
|
|
app.enable('trust proxy');
|
|
app.get('trust proxy');
|
|
|
|
app.disable('trust proxy');
|
|
app.get('trust proxy');
|
|
|
|
app.enabled('trust proxy');
|
|
|
|
app.configure(function () => {
|
|
app.set('title', 'My Application');
|
|
});
|
|
|
|
app.configure('development', () => {
|
|
app.set('db uri', 'localhost/dev');
|
|
});
|
|
|
|
app.configure('stage', 'production', function () { });
|
|
|
|
app.configure('1', '2', '3', function () { });
|
|
|
|
app.use(function (req, res, next) {
|
|
res.send('Hello World');
|
|
});
|
|
|
|
app.engine('jade', require('jade').__express);
|
|
|
|
var User;
|
|
app.param('user', (req, res, next, id) => {
|
|
User.find(id, (err, user) =>{
|
|
if (err) {
|
|
next(err);
|
|
} else if (user) {
|
|
req.user = user;
|
|
next();
|
|
} else {
|
|
next(new Error('failed to load user'));
|
|
}
|
|
});
|
|
});
|
|
|
|
app.get(/^\/commits\/(\d+)(?:\.\.(\d+))?$/, (req, res) => {
|
|
var from = req.params[0];
|
|
var to = req.params[1] || 'HEAD';
|
|
res.send('commit range ' + from + '..' + to);
|
|
});
|
|
|
|
app.locals.title = 'My App';
|
|
app.locals.strftime = require('strftime');
|
|
|
|
var requireAuthentication;
|
|
var loadUser = function () { };
|
|
app.all('*', requireAuthentication, loadUser);
|
|
app.all('*', loadUser);
|
|
app.all('*', loadUser, loadUser, loadUser);
|
|
|
|
app.locals.title = 'My App';
|
|
app.locals.strftime = require('strftime');
|
|
app.locals({
|
|
title: 'My App',
|
|
phone: '1-250-858-9990',
|
|
email: 'me@myapp.com'
|
|
});
|
|
app.render('email', function (err, html) { });
|
|
|
|
app.render('email', { name: 'Tobi' }, function (err, html) { });
|
|
}
|
|
|
|
function test_request() {
|
|
var req: Express.ServerRequest;
|
|
req.params.name;
|
|
req.params[0];
|
|
req.query.q;
|
|
req.body.user.name;
|
|
app.use(express.bodyParser({ keepExtensions: true, uploadDir: '/my/files' }));
|
|
req.param('name');
|
|
req.route;
|
|
req.cookies.name;
|
|
req.signedCookies;
|
|
req.get('Content-Type');
|
|
req.accepts('html');
|
|
req.accepts(['html', 'json']);
|
|
req.is('html');
|
|
req.ip;
|
|
req.path;
|
|
req.host;
|
|
req.fresh;
|
|
req.stale;
|
|
req.xhr;
|
|
req.protocol;
|
|
req.subdomains;
|
|
req.originalUrl;
|
|
req.acceptedLanguages;
|
|
req.acceptedCharsets;
|
|
var charset;
|
|
req.acceptsCharset(charset);
|
|
var lang;
|
|
req.acceptsLanguage(lang);
|
|
req.session = null;
|
|
}
|
|
|
|
function test_response() {
|
|
var res: Express.ServerResponse;
|
|
res.status(404).sendfile('path/to/404.png');
|
|
res.set('Content-Type', 'text/plain');
|
|
res.set({
|
|
'Content-Type': 'text/plain',
|
|
'Content-Length': '123',
|
|
'ETag': '12345'
|
|
});
|
|
res.get('Content-Type');
|
|
res.cookie('name', 'tobi', { domain: '.example.com', path: '/admin', secure: true });
|
|
res.cookie('rememberme', '1', { expires: new Date(Date.now() + 900000), httpOnly: true });
|
|
res.cookie('rememberme', '1', { maxAge: 900000, httpOnly: true });
|
|
res.cookie('cart', { items: [1, 2, 3] });
|
|
res.cookie('cart', { items: [1, 2, 3] }, { maxAge: 900000 });;
|
|
res.cookie('name', 'tobi', { signed: true });
|
|
res.cookie('name', 'tobi', { path: '/admin' });
|
|
res.clearCookie('name', { path: '/admin' });
|
|
res.redirect('/foo/bar');
|
|
res.redirect('http://example.com');
|
|
res.redirect(301, 'http://example.com');
|
|
res.charset = 'value';
|
|
res.send('some html');
|
|
res.send(new Buffer('whoop'));
|
|
res.send({ some: 'json' });
|
|
res.send('some html');
|
|
res.send(404, 'Sorry, we cannot find that!');
|
|
res.send(500, { error: 'something blew up' });
|
|
res.send(200);
|
|
res.set('Content-Type', 'text/html');
|
|
res.send(new Buffer('some html'));
|
|
res.send('some html');
|
|
res.send({ user: 'tobi' });
|
|
res.send([1, 2, 3]);
|
|
res.json(null);
|
|
res.json({ user: 'tobi' });
|
|
res.json(500, { error: 'message' });
|
|
res.jsonp(null);
|
|
res.jsonp({ user: 'tobi' });
|
|
res.jsonp(500, { error: 'message' });
|
|
res.jsonp({ user: 'tobi' });
|
|
res.type('application/json');
|
|
|
|
res.format({
|
|
'text/plain': function () {
|
|
res.send('hey');
|
|
},
|
|
'text/html': function () {
|
|
res.send('hey');
|
|
},
|
|
'application/json': function () {
|
|
res.send({ message: 'hey' });
|
|
}
|
|
});
|
|
|
|
res.attachment();
|
|
res.attachment('path/to/logo.png');
|
|
app.get('/user/:uid/photos/:file', function (req, res) {
|
|
var uid = req.params.uid
|
|
, file = req.params.file;
|
|
|
|
req.user.mayViewFilesFrom(uid, function (yes) {
|
|
if (yes) {
|
|
res.sendfile('/uploads/' + uid + '/' + file);
|
|
} else {
|
|
res.send(403, 'Sorry! you cant see that.');
|
|
}
|
|
});
|
|
});
|
|
|
|
res.download('/report-12345.pdf');
|
|
res.download('/report-12345.pdf', 'report.pdf');
|
|
res.download('/report-12345.pdf', 'report.pdf', function (err) {
|
|
if (err) { } else { }
|
|
});
|
|
|
|
res.links({
|
|
next: 'http://api.example.com/users?page=2',
|
|
last: 'http://api.example.com/users?page=5'
|
|
});
|
|
|
|
app.use(function (req, res, next) {
|
|
res.locals.user = req.user;
|
|
res.locals.authenticated = !req.user.anonymous;
|
|
next();
|
|
});
|
|
res.render('index', function (err, html) { });
|
|
res.render('user', { name: 'Tobi' }, function (err, html) { });
|
|
|
|
}
|
|
|
|
function test_middleware() {
|
|
app.use(express.basicAuth('username', 'password'));
|
|
app.use(express.basicAuth(function (user, pass) {
|
|
return 'tj' == user && 'wahoo' == pass;
|
|
}));
|
|
app.use(express.bodyParser());
|
|
app.use(express.json());
|
|
app.use(express.urlencoded());
|
|
app.use(express.multipart());
|
|
app.use(express.logger());
|
|
app.use(express.compress());
|
|
app.use(express.methodOverride());
|
|
app.use(express.bodyParser());
|
|
app.use(express.cookieParser());
|
|
app.use(express.cookieParser('some secret'));
|
|
app.use(express.cookieSession());
|
|
app.use(express.directory('public'));
|
|
app.use(express.static('public'));
|
|
}
|