You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.2 KiB

import { createClient } from 'redis';
import pg from 'pg'
const connectRedis = async ()=>{
const redis = createClient({
password: process.env.REDIS_PWD,
socket: {
host: 'redis-11789.c329.us-east4-1.gce.redns.redis-cloud.com',
port: 11789
}
});
await redis.connect();
console.log('connected to redis');
return redis
}
const redis = await connectRedis()
const connectPostgres = async ()=>{
const { Client } = pg
const postgres = new Client({
database:'lepr_stack'
})
await postgres.connect()
console.log('connected to pg');
return postgres
}
const postgres = await connectPostgres()
const runExample = async ()=>{
const results = await postgres.query('SELECT pets.*, people.first_name, people.last_name, people.age AS owner_age FROM pets JOIN people ON pets.owner_id = pets.id')
const fluffy = {
id: results.rows[0].id,
name:results.rows[0].name,
species:results.rows[0].species,
age: results.rows[0].age,
owner: {
id:results.rows[0].owner_id,
first_name:results.rows[0].first_name,
last_name:results.rows[0].last_name,
age:results.rows[0].owner_age
}
}
console.log(fluffy);
await redis.json.set('fluffy', '$', fluffy)
}
await runExample()
await postgres.end()
await redis.disconnect();