Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/env node
- // OpenShift sample Node application
- var express = require('express');
- var fs = require('fs');
- /**
- *Twitter
- */
- var Twit = require('twit')
- var T = new Twit({
- consumer_key: '2DK003ueNLdRD7VxkywGWRoPo'
- , consumer_secret: 'yOaHBYv06IPH5SOP5JUYFzdLFekIPVyvCqBWUJXNTpQmYkhhpv'
- , access_token: '77060821-bShjezKztJmEVv6rb2YrpOmEpB3rNYpAtSQXl9xOe'
- , access_token_secret: 'Z3P6hUq4GX9U380TvHvLwl9eLuFiEK1kZTUj43I0rpO1e'
- })
- /**
- * Define the sample application.
- */
- var SampleApp = function() {
- // Scope.
- var self = this;
- /* ================================================================ */
- /* Helper functions. */
- /* ================================================================ */
- /**
- * Set up server IP address and port # using env variables/defaults.
- */
- self.setupVariables = function() {
- // Set the environment variables we need.
- self.ipaddress = process.env.OPENSHIFT_NODEJS_IP;
- self.port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
- if (typeof self.ipaddress === "undefined") {
- // Log errors on OpenShift but continue w/ 127.0.0.1 - this
- // allows us to run/test the app locally.
- console.warn('No OPENSHIFT_NODEJS_IP var, using 127.0.0.1');
- self.ipaddress = "127.0.0.1";
- };
- };
- /**
- * Populate the cache.
- */
- self.populateCache = function() {
- if (typeof self.zcache === "undefined") {
- self.zcache = { 'index.html': '' };
- }
- // Local cache for static content.
- self.zcache['index.html'] = fs.readFileSync('./index.html');
- };
- /**
- * Retrieve entry (content) from cache.
- * @param {string} key Key identifying content to retrieve from cache.
- */
- self.cache_get = function(key) { return self.zcache[key]; };
- /**
- * terminator === the termination handler
- * Terminate server on receipt of the specified signal.
- * @param {string} sig Signal to terminate on.
- */
- self.terminator = function(sig){
- if (typeof sig === "string") {
- console.log('%s: Received %s - terminating sample app ...',
- Date(Date.now()), sig);
- process.exit(1);
- }
- console.log('%s: Node server stopped.', Date(Date.now()) );
- };
- /**
- * Setup termination handlers (for exit and a list of signals).
- */
- self.setupTerminationHandlers = function(){
- // Process on exit and signals.
- process.on('exit', function() { self.terminator(); });
- // Removed 'SIGPIPE' from the list - bugz 852598.
- ['SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT',
- 'SIGBUS', 'SIGFPE', 'SIGUSR1', 'SIGSEGV', 'SIGUSR2', 'SIGTERM'
- ].forEach(function(element, index, array) {
- process.on(element, function() { self.terminator(element); });
- });
- };
- /* ================================================================ */
- /* App server functions (main app logic here). */
- /* ================================================================ */
- /**
- * Create the routing table entries + handlers for the application.
- */
- self.createRoutes = function() {
- self.routes = { };
- self.routes['/:ids'] = function(req, res) {
- T.get('statuses/show/:id', { id: req.param('ids') }, function(err, data, response) {
- console.log(data)
- })
- };
- self.routes['/'] = function(req, res) {
- res.setHeader('Content-Type', 'text/html');
- res.send(self.cache_get('index.html') );
- };
- };
- /**
- * Initialize the server (express) and create the routes and register
- * the handlers.
- */
- self.initializeServer = function() {
- self.createRoutes();
- self.app = express.createServer();
- // Add handlers for the app (from the routes).
- for (var r in self.routes) {
- self.app.get(r, self.routes[r]);
- }
- };
- /**
- * Initializes the sample application.
- */
- self.initialize = function() {
- self.setupVariables();
- self.populateCache();
- self.setupTerminationHandlers();
- // Create the express server and routes.
- self.initializeServer();
- };
- /**
- * Start the server (starts up the sample application).
- */
- self.start = function() {
- // Start the app on the specific interface (and port).
- self.app.listen(self.port, self.ipaddress, function() {
- console.log('%s: Node server started on %s:%d ...',
- Date(Date.now() ), self.ipaddress, self.port);
- });
- };
- }; /* Sample Application. */
- /**
- * main(): Main code.
- */
- var zapp = new SampleApp();
- zapp.initialize();
- zapp.start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement