return new Promise(function(resolve, reject) {
    console.info('Fetching project data');
    pg.connect(FROM_DB, function(err, client, release) {
      if ( err ) {
        return reject(err);
      }

      client.query({
        text: queries.projects.findDataForRemix,
        values: [
          FROM_PROJECT
        ]
      }, function(err, result) {
        release();
        if ( err ) {
          return reject(err);
        }

        if ( !result.rows.length ) {
          return reject(new Error('No Project Found'));
        }

        resolve(formatRemixData(result.rows));
      });
    });
  });
示例#2
0
exports.query = function (sql, values, singleItem) {

    console.log(sql);
    console.log(values);
    console.log('databaseURL: ' + databaseURL);

    var deferred = Q.defer();

    pg.connect(databaseURL, function (err, conn, done) {
        if (err) return deferred.reject(err);
        try {
            conn.query(sql, values, function (err, result) {
                done();
                if (err) {
                    deferred.reject(err);
                } else {
                    deferred.resolve(singleItem ? result.rows[0] : result.rows);
                }
            });
        }
        catch (e) {
            done();
            deferred.reject(e);
        }
    });

    return deferred.promise;

};
示例#3
0
Psql.prototype.down = function(migration, callback){
  pg.connect(
    this.config, Driver.handle_error(
      callback,
      function(client) {
        client.query( "BEGIN", Driver.handle_error(
          callback,
          function(result){
            client.query( migration.down, Driver.handle_error(
              callback,
              function(result){
                client.query(
                  "DELETE FROM migrations where name = $1",
                  [migration.name],
                  Driver.handle_error( callback, function(result){
                    client.query("COMMIT",callback);
                  })
                );
              })
            );
          })
        );
      })
  );
};
router.post('/:productid', function(req, res, next) {

    var productID = req.params.productid;
    var valuation = req.body.valuation;
    var user = req.body.user;

    pg.connect(global.databaseURI, function(err, client, done) {
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        var QUERY = "UPDATE stock SET valuations=array_append(valuations, cast(%VALUE% AS numeric(10,2))), valuers=array_append(valuers, '%VALUER%') WHERE sid=%STOCKID%;";
        QUERY = QUERY.replace("%VALUE%", valuation);
        QUERY = QUERY.replace("%VALUER%", user);
        QUERY = QUERY.replace("%STOCKID%", productID);

        console.log(QUERY);
        client.query(QUERY, function(error, result){
            done();
            if (error){
                console.log(error);
            }
            console.log(result);
        });
        res.send();

    });
});
示例#5
0
exports.details = function(req, res) {
	var body = 'get details';
	var id = req.params['id'];
	console.log(req.session);	
	console.log(id)
	var result = new Array();
		pg.connect(process.env.DATABASE_URL, function(err, client, done) {
			if (err ){
				console.log(err);
				done(client);
				return;
			}	
			client.query("SELECT * FROM MARKERS WHERE UID = $1",[id], function (error, rst){
				if (error){
						result = {result:"error",error:error};
            res.status(403);
				}
        else if (rst.rowCount == 0){
          result = {result:"error",error:"marker not found"};
          res.status(403);
        }
				else{
					result = {result:"success",rowCount:rst.rowCount, rows:rst.rows}					
				}//else
        res.json(result);
        done();
			});//query
		});
};//details
示例#6
0
Psql.prototype.up = function(migration, callback){
  pg.connect(
    this.config, Driver.handle_error(
      callback,
      function(client) {
        client.query( "BEGIN", Driver.handle_error(
          callback,
          function(result){
            client.query( migration.up, Driver.handle_error(
              callback,
              function(result){
                client.query(
                  "INSERT INTO migrations(name,updated) "
                  + "VALUES($1,$2)",
                  [migration.name, new Date()],
                  Driver.handle_error( callback, function(result){
                    client.query("COMMIT",callback);
                  })
                );
              })
            );
          })
        );
      })
  );
};
router.post('/:name/delete', function(req, res, next) {


    pg.connect(global.databaseURI, function(err, client, done) {

        // Prepare the SQL query using string interpolation to populate username and password
        var QUERYSTRING = "DELETE FROM users WHERE username='******';".replace("%NAME%", req.params.name);

        // Check whether the connection to the database was successful
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        console.log('Connected to database');
        console.log(QUERYSTRING);
        // Execute the query -- an empty result indicates that the username:password pair does
        // not exist in the database
        // client.query(QUERYSTRING, function(error, result){
        //
        //     console.log(result);
        //     console.log(error);
        //     if(error) {
        //         console.error('Failed to execute query');
        //         console.error(error);
        //         return;
        //     }
        //     res.send();
        // });
        done();
    });

});
router.get('/:name/sold', function(req, res, next) {
    console.log("Checking username " + req.params.name);


    pg.connect(global.databaseURI, function(err, client, done) {

        // Prepare the SQL query using string interpolation to populate username and password
        var QUERYSTRING = "SELECT * FROM stock WHERE uid=(SELECT uid FROM users WHERE username='******') AND (status='sold');".replace("%NAME%", req.params.name);

        // Check whether the connection to the database was successful
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        console.log('Connected to database');
        console.log(QUERYSTRING);
        // Execute the query -- an empty result indicates that the username:password pair does
        // not exist in the database
        client.query(QUERYSTRING, function(error, result){
            done();
            console.log(result);
            console.log(error);
            if(error) {
                console.error('Failed to execute query');
                console.error(error);
                return;
            }
            res.send(result.rows);
        })
    });

});
router.post('/complaint/:complaintid', function(req, res, next) {



    pg.connect(global.databaseURI, function(err, client, done) {
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        var QUERY = "UPDATE product_complaints SET reviewed=true WHERE cid=%CID%;".replace("%CID%", req.params.complaintid);

        console.log(QUERY);
        client.query(QUERY, function(error, result){
            if (error){
                console.log(error);
            }
            res.send();
            done();
        });


    });
});
router.post('/:productid', function(req, res, next) {

    var id = req.params.productid;
    var username = req.body.username;
    var complaint = req.body.complaint;

    console.log(req.body);


    pg.connect(global.databaseURI, function(err, client, done) {
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        var QUERY = "INSERT INTO product_complaints(pid, username, complaint) VALUES (%PID%, '%USER%', '%COMPLAINT%');";
        QUERY = QUERY.replace("%PID%", id);
        QUERY = QUERY.replace("%USER%", username);
        QUERY = QUERY.replace("%COMPLAINT%", complaint.replace(/'/g, "''"));

        console.log(QUERY);
        client.query(QUERY, function(error, result){
            if (error){
                console.log(error);
            }
            res.send();
            done();
        });


    });
});
示例#11
0
router.get('/regions', function(req, res) {
	if (!(req.query.country in countryData)) {
		res.json(404, {'error': 'this country does not exist'});
		return;
	} else if (countryData[req.query.country].indexOf(req.query.city) < 0) {
		res.json(404, {'error': 'this city does not exist'});
		return;
	}
	var country = req.query.country;
	var city = req.query.city;

	var arrivalDate = req.query.arrivalDate === undefined ? moment().add('months', 1).format('YYYY-MM-DD') : req.query.arrivalDate;
	var departureDate = req.query.departureDate === undefined ? moment().add('months', 1).add('days', 7).format('YYYY-MM-DD') : req.query.departureDate;

	var s = squel.select({ numberedParameters: true });
	s = s.field('region_range_averages.region_id').field('region_range_averages.average').field('city_region_items.coordinates');
	s = s.from('region_range_averages').join('city_region_items', null, 'region_range_averages.region_id = city_region_items.region_id');
	s = s.where('city_region_items.country = ?', country).where('city_region_items.city = ?', city).where('region_range_averages.check_in_date = ?', arrivalDate).where('region_range_averages.check_out_date = ?', departureDate);

	query = s.toParam();

	pg.connect(conString, function(err, client, done) {
		client.query(query.text, query.values, function(err, result) {
			done();
			res.json(200, {'result': result === undefined ? [] : result.rows});
		})
	});
});
示例#12
0
request(url, function(err, response, body) {
  var data,
      location,
      queryString;

  if (err) {
    throw err;
  }

  if (response.statusCode === 200) {
    data = JSON.parse(body);

    if (data.status === 0) {
      var location = data.result.location;

      queryString = 'insert into t_user_profile (uid, min_price, max_price, city, geom) values (1, 1000, 2000, 021, ST_GeomFromText(\'POINT('+ location.lng + ' ' + location.lat + ')\', 26910));';

      pg.connect(conString, function(err, client, done) {
        if (err) {
          throw err;
        }

        client.query(queryString, function(err, results) {
          if (err) {
            throw err;
          }
          console.log(results.rows);
        });
      });
    }
  }
});
示例#13
0
exports.create = function(req, res) {
    // TODO: user/account creation
    var username = req.body.username;
	var password = req.body.passwordOne;	
    if(( username === undefined)||( username =='')||(password === undefined)||( password == ''))
    {
    	res.render('create', { title: 'Create Account', err: ''} );
    }else
    {
    	console.log("Creating users if not found");
    	pg.connect(connection, function (err, client) {
    		if (err)
                throw err;
    		var query = client.query('SELECT * FROM users WHERE username = $1', [username], function(err, result){
    			if(err)
    				throw err;
    			else if(result.rows.length != 0)
    			{
    				console.log("Username already exist");
    				found = true;
    				res.render('create', { title: 'Create Account', err: 'Username already exist!'} );
    			}else
    			{
    				console.log("Username created");
    				client.query('INSERT INTO users(username, password) values($1, $2);', [username, password]);
    				res.render('login', { title: 'Login to Leftoverz Project', confirm: 'User Account Created Successfully',err: ''});
    			}
    		});
    	});
    }
};
示例#14
0
app.get('/memory/get/timeline/:userid', function(req, res){
	//parse userid from json object
	var userid = req.params.userid;
	
	//TODO check if userid is authenticated for this request.
	
	if(userid == undefined){res.status(400).send("Bad Request. No userID provided."); return;}
	pg.connect(connectionString, function (err, client, done) {
	    var getTimelineQuery = client.query("SELECT * FROM memory WHERE userid = $1 ORDER BY creationDate DESC;", [userid]);
		var timeline = [];		//storage for each row that we retrieve from DB. 
		console.log("inside request");
		//Manage events that this query could cause. 
		getTimelineQuery.on('error', function(error){
			console.log("DB error:"+error);
			res.send("DB error. Something broke in the database rectifier.");
			client.end();
		});
		getTimelineQuery.on('row', function(row){
			timeline.push(row);		//add to the memory array. 
		});
		getTimelineQuery.on('end', function(row){
			res.send(timeline);		//blast it over to the client. 
			client.end();			//close DB connection.
		});
	});
});
示例#15
0
文件: index.js 项目: copley/Trendy
router.post('/register', function (req,res,next) {
    console.log("Trying to log in");
    	  var NAME = req.body.realname;
        var USERNAME = req.body.user;
        var PASSWORD = req.body.pass;
        console.log(USERNAME + " " + PASSWORD);
        var client = new pg.Client(database);
    		pg.connect(database,function(err,client,done){
		      if(err) {
    				return console.error('could not connect to postgres', err);
  					}
  					console.log('Connected to database');
  					 var query = ("INSERT INTO Users (Username, RealName, Password) VALUES ($1, $2, $3)");
  					  client.query(query,[USERNAME, NAME, PASSWORD], function(error, result){

            console.log(result);
            console.log(error);
            if(error) {
                console.error('Query failed');
                console.error(error);
                return;
            }
            else{
                res.send(true); 
                return;
            } 
        })
    })
});
示例#16
0
文件: server.js 项目: mdhays/wyvern
db.connect((err) => {
  if (err) throw err

  pg.connect(POSTGRES_URL, (err, client) => {

    db = client;

    server.listen(port, () => {
      console.log(`wyvern running on ${port}`);
    });
  });

  ws.on('connection', socket => {
    console.log('socket connected', socket.id)

    // Whenever a user connects to the database, get all the chats.
    db.query('SELECT * FROM chatlog', (err, result) => {
      if (err) throw err;

      socket.emit('receiveChat', result.rows);
    });

    // Execute this once the client sends their message. chat becomes msg.
    socket.on('sendChat', msg => {
      console.log(msg);
      db.query(`INSERT INTO chatlog (username, message) VALUES ('${msg.username}', '${msg.message}')`, (err, result) => {
          if (err) throw err;
          // Broadcast emits to all but this socket.
          socket.broadcast.emit('receiveChat', [msg]);
        });
    });
  });
});
示例#17
0
  isTokenValid(req.body.token, function(resp){
	
    if(resp.error){
			res.status(401).send("Authentication required: "+ resp.error);
			return;
		} else { 
		
	console.log("body contents: " + JSON.stringify(req.body)); //debug
	// Grab elements from body JSON object. 
	title = req.body.title;
    text = req.body.text;
    userid = req.body.userid;
    image = req.body.image;
    emotion = req.body.emotion;
    tagid = req.body.tagid;
    hashtags = req.body.hashtags;
    textSad = req.body.textSad;
    circleColor = req.body.circleColor;
    video = req.body.video;
	// Basic sanity checking. Is this even going to work? 
	if(	 title == undefined ||
		 text == undefined || 
    	 userid == undefined || 
    	 image == undefined || 
    	 emotion == undefined ||
    	 tagid == undefined
    	 ){
    	res.status(400).send("Bad request. Some parameter not defined or missing. I recieved this body:" + req.body);
    	return;
    }
	//Connect to database. 
    pg.connect(connectionString, function (err, client, done) {
        console.log("DB Connected with port: " + port);
		// SQL parameterized query to insert entry. 
        query = client.query('INSERT INTO memory (title, text, userID, image, emotion, tagID, hashtags, textSad, circleColor) '+
        	'VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) '+
        	'RETURNING memoryid, title, text, userID, image, emotion, tagID;', [title, text, userid, image, emotion, tagid, hashtags, textSad, circleColor]);
         
        var results = [];  //stores results.. in this case should just be one. 
		//handle database events. errors first.  		
		query.on('error', function (errorMsg) {
            console.log("Debug: database error:" + errorMsg);
            res.status(400).send({"error": "database error"});
			client.end();
        });
		// Stream results back one row at a time
		query.on('row', function (resultRow) {
            console.log("Debug: (/memory/store) returning obejct: " + resultRow);
			results.push(resultRow);
        });
		// After all data is returned, close connection and return results
		query.on('end', function () {
			client.end();
			res.status(200).send(results);
		});
		// Handle Errors - by console display
		if (err) {	console.log(err);  }
    });
		}
  });
示例#18
0
文件: index.js 项目: copley/Trendy
router.post('/login', function (req,res,next) {
    console.log("Trying to log in");
    
        var USERNAME = req.body.user;
        var PASSWORD = req.body.pass;
        userName = req.body.user;
        var fail = "Failed to login. Please try again.";
        console.log(fail);
        console.log(USERNAME + " " + PASSWORD);
        var client = new pg.Client(database);
    		pg.connect(database,function(err,client,done){
		      if(err) {
    				return console.error('could not connect to postgres', err);
  					}
  					console.log('Connected to database');
  					 var query = "SELECT * FROM Users WHERE username='******' AND password='******';".replace("%NAME%", USERNAME).replace("%PASSWORD%", PASSWORD);
  					  client.query(query, function(error, result){
            if(error) {
                console.error('Query failed');
                console.error(error);
                return;
            }
            else if (result.rowCount === 0){
                res.render('login', { title: 'Login', username: userName, failed: fail });
                return;
            } else {
            	 res.render('index', { title: 'Home', username: userName });
                console.log("Query success");
                return;
            }
        })
    })
});
示例#19
0
app.get('/memory/get/homepage/:userid/:happyOrSad/:count/:token', function(req, res){
	//token check...?
	var token = req.params.token;
	//parse userid from json object
	var userid = req.params.userid;
	var happyOrSad = req.params.happyOrSad;
	var memCount = req.params.count;
	
	if(happyOrSad == "happy") {happyOrSad = 1;}
	if(happyOrSad == "sad") {happyOrSad = 0;}
	
	//TODO check if userid is authenticated for this request.
	
	if(userid == undefined){res.status(400).send("Bad Request. No userID provided."); return;}
	pg.connect(connectionString, function (err, client, done) {
	    var getTimelineQuery = client.query(
		"SELECT * FROM memory WHERE userid=$1 AND circlecolor=$2 ORDER BY creationDate DESC LIMIT $3;",
		[userid, happyOrSad, memCount]);
		var timeline = [];		//storage for each row that we retrieve from DB. 
		console.log("inside request");
		//Manage events that this query could cause. 
		getTimelineQuery.on('error', function(error){
			console.log("DB error:"+error);
			res.send("DB error. Something broke in the database rectifier.");
			client.end();
		});
		getTimelineQuery.on('row', function(row){
			timeline.push(row);		//add to the memory array. 
		});
		getTimelineQuery.on('end', function(row){
			res.send(timeline);		//blast it over to the client. 
			client.end();			//close DB connection.
		});
	});
});
示例#20
0
	isTokenValid(token, function(resp){
	    if(resp.error){
			//send feedback if auth needed.
			res.status(401).send("Authentication required: "+ resp.error);
			return;
		} else { 
			var userid = req.params.userid;
			if(userid == undefined){res.status(400).send("Bad Request. No userID provided."); return;}

			pg.connect(connectionString, function (err, client, done) {
			    console.log("Doing a search for user:"******" with search string: " + req.params.searchstr);
			    var getTimelineQuery = client.query(
				"SELECT * FROM memory WHERE userid=$1 AND hashtags ILIKE $2 ORDER BY creationDate DESC;",
				[userid, "%" + req.params.searchstr.split("?")[0] + "%"]);			//percentage is part of the postgres wildcards regex.
				var timeline = [];		//storage for each row that we retrieve from DB. 
				console.log("inside request");
				//Manage events that this query could cause. 
				getTimelineQuery.on('error', function(error){
					console.log("DB error:"+error);
					res.send("DB error. Something broke in the database rectum.");
					client.end();
				});
				getTimelineQuery.on('row', function(row){
					timeline.push(row);		//add to the memory array. 
				});
				getTimelineQuery.on('end', function(row){
					res.send(timeline);		//blast it over to the client. 
					client.end();			//close DB connection.
				});
			});
		}
	});
示例#21
0
app.get('/memory/get/timeline/:userid/:token', function(req, res){
	//TODO check if userid matches token.
	//parse userid from json object
	var userid = req.params.userid;
	var token = req.params.token;
	
	//Lazy loading stuff handle start id. Only returns higher than this ID. 
	//These come from after the URL e.g.   ?start=date
	//Its used to only return memories with a higher ID than this one. 
	var startID = 95151;		//default to starting with highest id possible. //this limits scalability. 
	if(req.query.start != undefined){
		startID = req.query.start;		//if the request wants we can start higher. 
	}	
	
	if(userid == undefined){res.status(400).send("Bad Request. No userID provided."); return;}
	pg.connect(connectionString, function (err, client, done) {
	    console.log("DB Connected with port: " + port);
		var getTimelineQuery = client.query("SELECT * FROM memory WHERE userid=$1 AND memoryid < $2 ORDER BY creationDate DESC LIMIT 10;", [userid, startID]);
		var timeline = [];		//storage for each row that we retrieve from DB. 
		console.log("inside request");
		//Manage events that this query could cause. 
		getTimelineQuery.on('error', function(error){
			console.log("DB error:"+error);
			res.send("DB error. Something broke in the database rectifier.");
			client.end();
		});
		getTimelineQuery.on('row', function(row){
			timeline.push(row);		//add to the memory array. 
		});
		getTimelineQuery.on('end', function(row){
			res.send(timeline);		//blast it over to the client. 
			client.end();			//close DB connection.
		});
	});
});
示例#22
0
  isTokenValid(req.params.token, function(resp){
	
    if(resp.error){
			res.status(401).send("Authentication required: "+ resp.error);
			return;
		} else { 
			console.log(resp);
			//Connect to database
			pg.connect(connectionString, function (err, client, done) {
				console.log("DB Connected with port: " + port);
				//Perform query to database. Fields to return specified here, and id specified in URL. 
				query = client.query('SELECT memoryid, title, text, textSad, userid, image, emotion, tagid, hashtags, circleColor, creationDate FROM memory WHERE memoryid=$1', [req.params.id]);
				var results = [];  //stores results.. in this case should just be one or none. 

				//for each row add to the results array (above). 
				query.on('row', function(result){
					console.log("Debug: (/memory/get/:id) returning obejct: " + result);
					if (!result) {		//If there is no result then send back an error message. 
						res.status(404).send('No data found');	// 404 NOT FOUND
					} else {
						results.push(result);	//add to array. 
					}
				});
				query.on('end', function() {
					client.end();	//close DB connection.
					res.send(results);	//finally at the end of the query send all the results. 
				});
				if (err) {	console.log(err);  }
			});
		}
  });
示例#23
0
app.get('/nextlinktocrawl', function(req,res){
	res.setHeader('Content-Type', 'json');
	pg.connect(DATABASE_URL, function(err, client){
	if (err) throw err;
		var query = client.query("SELECT domain FROM linktimetable WHERE age(localtimestamp, lastcrawled) >= interval '1 minute';", function(err, result){
			if (err){
				console.log(err);
			}
			if (result.rows.length == 0){
				res.end(JSON.stringify({"Error" : "All links are in the 1 minute cooldown period, or there are no links."}));
			}
			var links = new Array();
			for (var i=0; i<result.rows.length; i++){
				links.push(result.rows[i]['domain'])
			}
			domain = links[Math.floor(Math.random()*links.length)];
			var query = client.query('SELECT * FROM linkstocrawl WHERE domain=\''+domain+'\';', function(err, result){
				if (err){
					console.log(err);
				}
				if (result.rows.length == 0){
					res.end(JSON.stringify({"Error" : "No links found for the desired domain."}));
				}
				var urls = new Array();
				for (var i=0; i<result.rows.length; i++){
					urls.push(result.rows[i]['fullurl']);
				}
				res.end(JSON.stringify({"Link" : urls[Math.floor(Math.random()*urls.length)]}));
			});
		});
	});
});
示例#24
0
router.get('/', function(req,res){
    var client = new pg.Client(database);
    var users = [];
    username = localStorage.getItem("username");
    pg.connect(database,function(err,client,done){
        if(err) {
            return console.error('could not connect to postgres', err);
        }
        console.log('Connected to database');
        var query = "SELECT * FROM USERS WHERE username = '******';".replace("%NAME%", username);
        console.log("Username is: " + username);
        client.query(query, function(error, result){
            if(error) {
                console.error('Query failed');
                console.error(error);
                return;
            }
            for (var i = 0; i < result.rows.length; i++) {
                var user = {
                    username: result.rows[i].username,
                    realname: result.rows[i].realname,
                    email: result.rows[i].email,
                    address: result.rows[i].address
                };
                users.push(user);
            }
            console.log(users);
            res.render('accountDetails', { title: 'My Account', users: users, username: username });
        })
    })
});
    self.exists = function(id){
        var deferred = Q.defer();

        pg.connect(dbConnectionString, function(err, client, done) {
            if(err) {
                return console.error('error fetching client from pool', err);
            }

            var QUERY = 'SELECT * from users_working WHERE "user"->>\'user_id\' = \'' + id  + '\'';

            client.query(QUERY, function(err, result) {
                done();

                if(err) {
                    console.error('error running query', err);
                    deferred.reject();
                    return;
                }

                var exists = result.rows.length > 0;

                deferred.resolve(exists);
            });
        });

        return deferred.promise;
    };
      helper.runInTransaction(agent, function transactionInScope(tx) {
        var transaction = agent.getTransaction();
        t.ok(transaction, "transaction should be visible");
        t.equal(tx, transaction, 'We got the same transaction');

        var colVal = 'World!';
        var pkVal = 222;
        var insQuery = 'INSERT INTO ' + TABLE + ' (' + PK + ',' +  COL;
        insQuery += ') VALUES(' + pkVal + ",'" + colVal + "');" ;


        pg.connect(CON_STRING, function(error, clientPool, done) {
          if (error) return t.fail (error);
          clientPool.query(insQuery, function (error, ok) {
            if (error) return t.fail(error);
            t.ok(agent.getTransaction(), "transaction should still be visible");
            t.ok(ok, "everything should be peachy after setting");

            var selQuery = 'SELECT * FROM ' + TABLE + ' WHERE ';
            selQuery += PK + "=" + pkVal + ";";

            clientPool.query(selQuery, function (error, value) {
              if (error) return t.fail(error);

              t.ok(agent.getTransaction(), "transaction should still still be visible");
              t.equals(value.rows[0][COL], colVal, "Postgres client should still work");

              transaction.end();

              setImmediate(function() {
                var trace = transaction.getTrace();
                t.ok(trace, "trace should exist");
                t.ok(trace.root, "root element should exist");
                t.equals(trace.root.children.length, 1,
                       "there should be only one child of the root");
                var setSegment = trace.root.children[0];
                t.equals(setSegment.host, params.postgres_host,
                       "should register the host");
                t.equals(setSegment.port, params.postgres_port,
                       "should register the correct port");
                t.ok(setSegment, "trace segment for insert should exist");
                t.equals(setSegment.name, "Datastore/operation/Postgres/query",
                       "should register the query call");
                t.equals(setSegment.children.length, 1,
                       "set should have an only child");
                var getSegment = setSegment.children[0];
                t.ok(getSegment, "trace segment for get should exist");
                t.equals(getSegment.name, "Datastore/operation/Postgres/query",
                       "should register the query call");
                t.equals(getSegment.children.length, 0,
                       "get should leave us here at the end");
                t.ok(!getSegment.timer.isActive(), "trace segment has ended");

                t.end();
                done();
              });
            });
          });
        });
      });
示例#27
0
 function(username, password, done) {
   pg.connect(process.env.DATABASE_URL, function(err, client, next) {
     if (err) {
       return console.error("Unable to connect to database");
     }
     console.log("Connected to database");
     client.query('SELECT * FROM users WHERE username = $1', [username], function(err, result) {
       // Release client back to pool
       next();
       if (err) {
         console.log("Database error");
         return done(err);
       }
       if (result.rows.length > 0) {
         var matched = bcrypt.compareSync(password, result.rows[0].password);
         if (matched) {
           console.log("Successful login");
           return done(null, result.rows[0]);
         }
       }
       console.log("Bad username or password");
       return done(null, false, {message: 'Bad username or password'});
     });
   });
 })
router.get('/votes-required', function(req, res, next) {

    pg.connect(global.databaseURI, function(err, client, done) {
        if(err){
            console.error('Could not connect to the database');
            console.error(err);
            return;
        }

        var QUERY = "SELECT value FROM site_parameters WHERE parameter='VOTES_REQUIRED';";

        console.log(QUERY);
        client.query(QUERY, function(error, result){
            done();
            if (error){
                console.log(error);
            }
            res.send(result.rows[0]);
            console.log(result);

        });
        done();


    });
});
示例#29
0
router.post('/signup', function(req, res, next) {
    if (!validUsername(req.body.username)) {
      return res.render('examSignup', { invalid: "true" });
    }
    // Local database users:
    // pg.connect(process.env.DATABASE_URL, connectDB(req,res,next));
    pg.connect(process.env.DATABASE_URL + "?ssl=true", connectDB(req,res,next));
  });
示例#30
0
function setSong(song, roomname){
	pg.connect(connection, function (err, client) {
        if (err) {
            throw err;
        }
        client.query('UPDATE musicrooms SET current_song = $1 WHERE chatroom_name = $2;', [song, roomname]);
    });
}