d2-ui
Version:
253 lines (191 loc) • 6.08 kB
Markdown
# Servers
Overview of `http-proxy-middleware` implementation in different servers.
Missing a server? Feel free to extend this list of examples.
<!-- MarkdownTOC autolink=true bracket=round -->
- [Browser-Sync](#browser-sync)
- [Express](#express)
- [Connect](#connect)
- [lite-server](#lite-server)
- [grunt-contrib-connect](#grunt-contrib-connect)
- [grunt-browser-sync](#grunt-browser-sync)
- [gulp-connect](#gulp-connect)
- [gulp-webserver](#gulp-webserver)
<!-- /MarkdownTOC -->
## Browser-Sync
https://github.com/BrowserSync/browser-sync
[](https://github.com/BrowserSync/browser-sync)
```javascript
var browserSync = require('browser-sync').create();
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
browserSync.init({
server: {
baseDir: './',
port: 3000,
middleware: [apiProxy],
},
startPath: '/api'
});
```
## Express
https://github.com/expressjs/express
[](https://github.com/expressjs/express)
```javascript
var express = require('express');
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
var app = express();
app.use(apiProxy);
app.listen(3000);
```
## Connect
https://github.com/senchalabs/connect
[](https://github.com/senchalabs/connect)
```javascript
var http = require('http');
var connect = require('connect');
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
var app = connect();
app.use(apiProxy);
http.createServer(app).listen(3000);
```
## lite-server
https://github.com/johnpapa/lite-server
[](https://github.com/johnpapa/lite-server) ([example source](https://github.com/johnpapa/lite-server/issues/61#issuecomment-205997607))
File: `bs-config.js`
```javascript
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
module.exports = {
server: {
middleware: {
1: apiProxy
}
}
};
```
## grunt-contrib-connect
https://github.com/gruntjs/grunt-contrib-connect
[](https://github.com/gruntjs/grunt-contrib-connect)
As an `Array`:
```javascript
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
grunt.initConfig({
connect: {
server: {
options: {
middleware: [apiProxy],
},
},
},
});
```
As a `function`:
```javascript
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
grunt.initConfig({
connect: {
server: {
options: {
middleware: function(connect, options, middlewares) {
// inject a custom middleware into the array of default middlewares
middlewares.unshift(apiProxy);
return middlewares;
},
},
},
},
});
```
## grunt-browser-sync
https://github.com/BrowserSync/grunt-browser-sync
[](https://github.com/BrowserSync/grunt-browser-sync)
```javascript
var proxy = require('http-proxy-middleware');
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
grunt.initConfig({
// BrowserSync Task
browserSync: {
default_options: {
options: {
files: [
"css/*.css",
"*.html"
],
port: 9000,
server: {
baseDir: ['app'],
middleware: apiProxy
}
}
}
}
});
```
## gulp-connect
https://github.com/avevlad/gulp-connect
[](https://github.com/avevlad/gulp-connect)
```javascript
var gulp = require('gulp');
var connect = require('gulp-connect');
var proxy = require('http-proxy-middleware');
gulp.task('connect', function() {
connect.server({
root: ['./app'],
middleware: function(connect, opt) {
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
return [apiProxy];
}
});
});
gulp.task('default', ['connect']);
```
## gulp-webserver
https://github.com/schickling/gulp-webserver
[](https://github.com/schickling/gulp-webserver)
```javascript
var gulp = require('gulp');
var webserver = require('gulp-webserver');
var proxy = require('http-proxy-middleware');
gulp.task('webserver', function() {
var apiProxy = proxy('/api', {
target: 'http://www.example.org',
changeOrigin: true // for vhosted sites
});
gulp.src('app')
.pipe(webserver({
livereload: true,
directoryListing: true,
open: true,
middleware: [apiProxy]
}));
});
gulp.task('default', ['webserver']);
```