Esempio n. 1
0
module.exports = function start(config) {
  Object.assign = copyObj();
  // allow multiple bird instances
  if (config && Array.isArray(config)) {
    for (var i = 0; i < config.length; i++) {
      start(config[i])
    }
    return;
  }

  var jar = request.jar();  // jar to store cookies
  config = configResolver(config, jar);

  // check if config ok
  if (!config.ifOk) {
    console.info('check your configuration, pls')
    return;
  }
  // silence when not debugging 
  if (!config.debug) {
    global.console.log = function (){};
  }

  if (config.middleware) {
    if (config.ifAuth) {
      auth(config, jar);
    }
    // http://stackoverflow.com/questions/20274483/how-do-i-combine-connect-middleware-into-one-middleware
    return listAll([
      require('./lib/mock')(config),
      require('./lib/change-user')(config),
      require('./lib/proxy')(config)
    ]);
  } else {
    if (config.ifAuth) {
      config.auth(config, jar).then(function () {
        // setup bird app
        var app = new express()
        app.all('*', require('./lib/mock')(config))
        app.all('*', require('./lib/static')(config))
        app.all('*', require('./lib/change-user')(config))
        if (config.ifProxy) {
          app.all('*', require('./lib/proxy')(config))
        }
        // go!
        app.listen(config.birdPort)
        console.info('BIRD'.rainbow, '============', config.name || '', 'RUNNING at', 'http://localhost:' + config.birdPort, '===============', 'BIRD'.rainbow);
      })
    } else {
      var app = new express()
      app.all('*', require('./lib/mock')(config))
      app.all('*', require('./lib/static')(config))
      if (config.ifProxy) {
        app.all('*', require('./lib/proxy')(config))
      }
      app.listen(config.birdPort)
      console.info('BIRD'.rainbow, '============', config.name || '', 'RUNNING at', 'http://localhost:' + config.birdPort, '===============', 'BIRD'.rainbow);
    }
  }
}
Esempio n. 2
0
 config.auth(config, jar).then(function () {
   // setup bird app
   var app = new express()
   app.all('*', require('./lib/mock')(config))
   app.all('*', require('./lib/static')(config))
   app.all('*', require('./lib/change-user')(config))
   if (config.ifProxy) {
     app.all('*', require('./lib/proxy')(config))
   }
   // go!
   app.listen(config.birdPort)
   console.info('BIRD'.rainbow, '============', config.name || '', 'RUNNING at', 'http://localhost:' + config.birdPort, '===============', 'BIRD'.rainbow);
 })
Esempio n. 3
0
const createServer = ({graphqlSchema, pgConfig, route = '/', secret, development = true, log = true, }) => {
  assert(graphqlSchema instanceof GraphQLSchema, 'Must be an instance of GraphQL schema must be defined')
  assert(pgConfig, 'A PostgreSQL config must be defined')

  const server = new Express()

  if (log) server.use(logger(development ? 'dev' : 'common'))
  server.use(compress())
  server.use(favicon(path.join(__dirname, '../assets/favicon.ico')))
  server.use(Express.static(path.join(__dirname, '../public')))
  server.use(cors({
    origin: ['http://localhost:3000', 'http://192.168.1.201:3000', 'http://pa6.com'],
    credentials: true
  }))

  server.all(route, graphqlHTTP(async req => {
    // Acquire a new client for every request.
    const client = await pg.connectAsync(pgConfig)

    // Start a transaction for our client and set it up.
    await client.queryAsync('begin')

    // If we have a secret, let’s setup the request transaction.
    if (secret) await setupRequestTransaction(req, client, secret)

    // Make sure we release our client back to the pool once the response has
    // finished.
    onFinished(req.res, () => {
      // Try to end our session with a commit. If it succeeds, release the
      // client back into the pool. If it fails, release the client back into
      // the pool, but also report that it failed. We cannot report an error in
      // the request at this point because it has finished.
      client.queryAsync('commit')
        .then(() => client.end())
        .catch(error => {
          console.error(error.stack) // eslint-disable-line no-console
          client.end()
        })
    })

    return {
      schema: graphqlSchema,
      context: {
        client
      },
      pretty: development,
      graphiql: development,
      formatError: development ? developmentFormatError : formatError,
    }
  }))

  return http.createServer(server)
}
Esempio n. 4
0
const createServer = ({
  graphqlSchema,
  pgConfig,
  route = '/',
  secret,
  development = true,
  log = true,
}) => {
  const server = new Express()

  if (log) server.use(logger(development ? 'dev' : 'common'))
  server.use(favicon(path.join(__dirname, '../assets/favicon.ico')))

  server.all(route, graphqlHTTP(async req => {
    // Acquire a new client for every request.
    const client = await pg.connectAsync(pgConfig)

    // Start a transaction for our client and set it up.
    await client.queryAsync('begin')

    // If we have a secret, let’s setup the request transaction.
    if (secret) await setupRequestTransaction(req, client, secret)

    // Make sure we release our client back to the pool once the response has
    // finished.
    onFinished(req.res, () => {
      // Try to end our session with a commit. If it succeeds, release the
      // client back into the pool. If it fails, release the client back into
      // the pool, but also report that it failed. We cannot report an error in
      // the request at this point because it has finished.
      client.queryAsync('commit')
      .then(() => client.end())
      .catch(error => {
        console.error(error.stack) // eslint-disable-line no-console
        client.end()
      })
    })

    return {
      // Await the `graphqlSchema` because it may be a promise.
      schema: await graphqlSchema,
      context: { client },
      pretty: development,
      graphiql: development,
      formatError: development ? developmentFormatError : formatError,
    }
  }))

  // If next is not defined, use the `finalHandler`.
  return (req, res, next) => server(req, res, next || finalHandler(req, res))
}
Esempio n. 5
0
export default function server(app: express) {
  app.use("/notify", notifHandler({
    handlers: {
      "ship:update": commandHandler,
      "segment:update": commandHandler,
      "segment:delete": commandHandler,
      "user:update": userHandler
    }
  }));
  app.use("/batch", notifHandler({
    handlers: {
      "user:update": userHandler
    }
  }));

  app.all("/sync", (req, res) => {
    res.end("ok");
  });

  app.all("/webhook", webhookHandler);

  app.get("/admin", adminHandler);

  app.post("/fetch-all", fetchAllHandler);

  app.use("/schema/custom_fields", cors(), (req, res) => {
    res.send({
      options: _.get(req, "hull.ship.private_settings.traits_mapping", []).map(name => {
        return {
          label: name,
          value: name
        };
      })
    });
  });

  return app;
}
Esempio n. 6
0
/**
 * Created by dietn on 18/12/14.
 */

var express = require('express');
var server = new express();
var settings = require("./settings.json");
var route = require('./Routing/RouteHandler.js');
var db = require('./Data/DataHandler.js');
//serve static files
server.use("/Public", express.static(__dirname + '/Public'));
db.truncateProcesses();



server.all('*',function(req,res){
    route.routeRequest(req,res);
});

server.listen(settings.port);
Esempio n. 7
0
app.get("/client", function (req, res, next) {
    res.render('client', req.session.accessToken);
});


var controller = new ContestsHTTPController();



//route to get contest types that DOES require oauth authentication
app.get('/v2/contesttypes', controller.getContestTypes);


// for all other routes, require authentication
app.all("*", isAuthenticated);

//route to get contest types that DOES require oauth authentication
app.get('/v2/secure/contesttypes', controller.getContestTypes);


// error-handling middleware, take the same form
// as regular middleware, however they require an
// arity of 4, aka the signature (err, req, res, next).
// when connect has an error, it will invoke ONLY error-handling
// middleware.
app.use(function (err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        status: err.status || 500,
        error: err
describe("errorHandler", function(){
  var err;

  var app = new express4();
  app.use(body_parser.json());
  app.all('/error', function(req, res, next){ return next(err); });
  app.post('/error/:test', function(req, res, next){ return next(err); });
  app.use(errorHandler);
  var request = new supertest(app);

  beforeEach(function(){
    sandbox.stub(console, 'error', function(message){ });
  });

  afterEach(function(){
    sandbox.restore();
  })

  it("should handle NotPermittedError", function(done){
    err = new errors.NotPermitted("don't do that");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 403);
      assert.equal(res.text, "An attempt was made to perform an operation that is not permitted: don't do that");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle AuthenticationRequired", function(done){
    err = new errors.AuthenticationRequired("gime password");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 401);
      assert.equal(res.text, "An attempt was made to perform an operation without authentication: gime password");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle Validation", function(done){
    err = new errors.Validation("bad")
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 400);
      assert.equal(res.text, "bad");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle AlreadyInUse", function(done){
    err = new errors.AlreadyInUse("bad", "test");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 409);
      assert.equal(res.text, "The specified 'bad' value is already in use for: test");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle ArgumentNull", function(done){
    err = new errors.ArgumentNull("test");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 404);
      assert.equal(res.text, "Not Found: \"test\"");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle ArgumentNull route param", function(done){
    err = new errors.ArgumentNull("test");
    request.post('/error/1').end(function(err, res){
      assert.equal(res.res.statusCode, 404);
      assert.equal(res.text, "Not Found: \"test\"");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle ArgumentNull route param in express3", function(done){
    err = new errors.ArgumentNull("test");

    var app = express3();
    app.use(app.router)
    app.use(errorHandler);
    app.post('/error/:test', function(req, res, next){
      return next(err);
    });

    var request = new supertest(app);

    request.post('/error/1').end(function(err, res){
      assert.equal(res.res.statusCode, 404);
      assert.equal(res.text, "Not Found: \"test\"");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle ArgumentNull POST", function(done){
    err = new errors.ArgumentNull("test");
    request.post('/error').send({test:1}).end(function(err, res){
      assert.equal(res.res.statusCode, 400);
      assert.equal(res.text, "Not Found: \"test\"");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle NotFoundError", function(done){
    err = new errors.NotFoundError("test");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 404);
      assert.equal(res.text, "Not Found: \"test\"");
      assert.ok(!console.error.called, "console.error not called");
      done();
    });
  });

  it("should handle Error", function(done){
    err = new Error("test");
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 500);
      assert.equal(res.text, "Internal Server Error");
      assert.ok(console.error.called);
      assert.ok(/test/.test(console.error.getCall(0).args[0]));
      done();
    });
  });  

  it("should handle Error status", function(done){
    err = new Error("test");
    err.status = 544;
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 544);
      assert.equal(res.text, "Internal Server Error");
      assert.ok(console.error.called);
      assert.ok(/test/.test(console.error.getCall(0).args[0]));
      done();
    });
  });  

  it("should handle HttpStatusError (deprecated)", function(done){
    err = new errors.HttpStatus('custom status message', 544);
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 544);
      assert.equal(res.text, "Internal Server Error");
      assert.ok(console.error.called);
      assert.ok(/custom status message/.test(console.error.getCall(0).args[0]));
      done();
    });
  });  

  it("should handle HttpStatusError", function(done){
    err = new errors.HttpStatus(544, 'custom status message')
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 544);
      assert.equal(res.text, "Internal Server Error");
      assert.ok(console.error.called);
      assert.ok(/custom status message/.test(console.error.getCall(0).args[0]));
      done();
    });
  });  

  it("should handle HttpStatusError 400", function(done){
    err = new errors.HttpStatus(444, 'custom status message')
    request.get('/error').end(function(err, res){
      assert.equal(res.res.statusCode, 444);
      assert.equal(res.text, "custom status message");
      assert.ok(!console.error.called);
      done();
    });
  });  

  it("should work with express 3", function(done){
    var app = express3();
    app.use(app.router)
    app.use(errorHandler);
    app.get('/error', function(req, res, next){
      return next(new Error("This is a test"));
    });

    var request = new supertest(app);
    request.get('/error')
    .end(function(err, res){
      assert.equal(res.res.statusCode, 500);
      done();
    })
  })

});
let express = require('express')
let bodyParser = require('body-parser')
let dog = require('./dog')

require('./db')

let app = new express()

app.use(bodyParser.json())

app.get('/ping', (req, res) => {
    res.send('pong')
})

app.all('/*', (req, res, next) => {
    if(req.get('Authorization') == '12345') {
        next()
    } else {
        res.status(401).send('wrong token, dude')
    }
})

app.use('/dogs', dog)

let server = app.listen(4000, () => console.log('Express server is listening on ' + server.address().port))
Esempio n. 10
0
app.get('/',routes.Login);
app.get('/Profile',isLoggedIn,routes.profileView);
app.get('/loginSuccess',isLoggedIn,routes.loginSuccess);
app.post('/Login', passport.authenticate('local-signup', {
    successRedirect : '/loginSuccess',
    failureRedirect : '/',
    failureFlash : true
}));
app.post('/checkLogin', passport.authenticate('local-login', {
    successRedirect : '/loginSuccess',
    failureRedirect : '/',
    failureFlash : true
}));
app.get('/Logout',isLoggedIn,routes.logout);
app.get('/checkTime',isLoggedIn,routes.checkTime);

function isLoggedIn(req, res, next) {
 if (req.isAuthenticated())
        return next();
 res.redirect('/');
}
app.all('*', function (req, res, next) {
    if (req.isAuthenticated() || req.path == '/')
        res.redirect('/Profile');
    else
        res.redirect('/');
});
var server=app.listen(process.env.PORT||1272);
customSocket.create(server);
Esempio n. 11
0
File: app.js Progetto: D0VK3/pandora
				cb(null, {
					expires:null,
					userId: JSON.parse(str)
				});
			}
		});
	};
}

app.oauth = oauthserver(oauthConfig);

app.get("/courses(*)", function(req, res) {
	res.sendfile("public/index.html");
});

app.all('/oauth/token', app.oauth.grant());
app.use(app.oauth.authorise());

app.use(function(req, res, next) {
	req.user = req.user.id;
	next();
});

app.get("/userinfo", function(req, res) {
	res.json(req.user.toJSON());
});

app.post("/userinfo/changePassword", function(req, res, next) {
	req.user.comparePassword(req.body.oldPassword, function(err, isMatch) {
		if(isMatch) {
			req.user.password = req.body.newPassword;
Esempio n. 12
0
// Copyright (C) 2016 Goom Inc. All rights reserved.

const config = require('./config');

const Express = require('express');
const app = new Express();

const httpProxy = require('http-proxy');
const apiProxy = httpProxy.createProxyServer();
app.all('/api/*', (req, res) => {
  apiProxy.web(req, res, { target: 'http://localhost:8080' });
});

const cookieParser = require('cookie-parser');
app.use(cookieParser());

const request = require('superagent');

app.use(require('./middleware')({
  hot: app.get('env') === 'development',
  localBundle: app.get('env') === 'production',
  getAuth: (req, callback) => {
    request
      .get('http://localhost:8080/api/v1/login')
      .set('Cookie', `connect.sid=${req.cookies['connect.sid']}`)
      .end((err, res) => callback(err, res && res.body));
  },
}));

app.listen(config.port, (error) => {
  if (error) {
Esempio n. 13
0
app.get('/index', function(req, res) {
	// console.log(req.query);
	res.send(req.query);
});

app.post('/login', function(req, res) {
	console.log(req.path);
	req.on('data', function(chunk) {
		console.log(chunk.toString());
		var qsObj = qs.parse(chunk.toString());
		res.send(qsObj);
	});
});

app.all('*', function(req, res) {
	// console.log(req.path);
	res.sendFile(__dirname + req.path);
});


app.listen(8888,function() {
	console.log('server success');
});






Esempio n. 14
0
/**
 * Created by qianjiahao on 15/4/3.
 */
var express = require('express'),
	superagent = require('superagent'),
	cheerio = require('cheerio'),
	app = new express(),
	resource = [];


app.all('*', function (req, res, next) {
	res.header("Access-Control-Allow-Origin", "*");
	res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
	res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
	res.header("X-Powered-By", ' 3.2.1');
	res.header("Content-Type", "application/json;charset=utf-8");
	next();
});

app.get('/topline', function (req, res) {
	var url = 'http://www.neusoft.edu.cn/';

	superagent.get(url)
		.end(function (err, data) {
			if (err) console.log(err);

			var top = {};
			var $ = cheerio.load(data.text);
			var $element = $('#news .topline');
			top.href = encodeURIComponent($element.find('a').attr('href'));
			top.title = $element.find('a').attr('title');