|
const MongoClient = require('mongodb').MongoClient |
|
|
|
const DB_URL = process.env.MONGO_DB_URL |
|
const DB_NAME = process.env.MONGO_DB_NAME |
|
const DB_COLLECTION = 'posts' |
|
|
|
export async function getCache (key) { |
|
const client = await MongoClient.connect(DB_URL).catch(err => { console.error(err) }) |
|
const dbo = client.db(DB_NAME) |
|
const query = { block_id: key } |
|
const res = await dbo.collection('posts').findOne(query).catch(err => { console.error(err) }) |
|
await client.close() |
|
return res |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export async function setCache (key, data) { |
|
const client = await MongoClient.connect(DB_URL).catch(err => { console.error(err) }) |
|
const dbo = client.db(DB_NAME) |
|
data.block_id = key |
|
const query = { block_id: key } |
|
const jsonObj = JSON.parse(JSON.stringify(data)) |
|
|
|
const updRes = await dbo.collection(DB_COLLECTION).updateOne(query, { $set: jsonObj }).catch(err => { console.error(err) }) |
|
console.log('更新结果', key, updRes) |
|
if (updRes.matchedCount === 0) { |
|
const insertRes = await dbo.collection(DB_COLLECTION).insertOne(jsonObj).catch(err => { console.error(err) }) |
|
console.log('插入结果', key, insertRes) |
|
} |
|
await client.close() |
|
return data |
|
} |
|
|
|
export async function delCache (key, data) { |
|
const client = await MongoClient.connect(DB_URL).catch(err => { console.error(err) }) |
|
const dbo = client.db(DB_NAME) |
|
const query = { block_id: key } |
|
const res = await dbo.collection('posts').deleteOne(query).catch(err => { console.error(err) }) |
|
console.log('删除结果', key, res) |
|
await client.close() |
|
return null |
|
} |
|
|
|
export default { getCache, setCache, delCache } |
|
|