dolor3sh4ze
dolor3sh4ze

Reputation: 1165

Lowdb return undefined

I'm doing a Discord bot with command handling, but on a file, I can't get the content of my JSON file out with lowdb... I proceed exactly the same way with success in the other files, I don't understand... Here is my code:

const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('../db.json')
const db = low(adapter)
const adapter2 = new FileSync('../users.json')
const users = low(adapter2)
const fetch = require('node-fetch');
const config = require('../config.json');
const api = config.api;

module.exports = {
    name: 'rent',
    description: 'Rent a number',
    usage: '<country>',
    guildOnly: true,

  async execute(message, args) {
    return console.log(db.get().value())

...

Here's my db.json:

{
  "numbers": [
    {
      "test": "1234"
    }
  ]
}

When I console.log db alone, it takes me out the object, but as soon as I try to console.log with lowdb like above it takes me out undefined ....

Upvotes: 0

Views: 1204

Answers (1)

dolor3sh4ze
dolor3sh4ze

Reputation: 1165

So I'm not sure why, but you have to remove a point on the road to lowdb files.

Code not working:

const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('../db.json')
const db = low(adapter)
const adapter2 = new FileSync('../users.json')
const users = low(adapter2)
const fetch = require('node-fetch');
const config = require('../config.json');
const api = config.api;

Code after modification and functional:

const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('./db.json')
const db = low(adapter)
const adapter2 = new FileSync('./users.json')
const users = low(adapter2)
const fetch = require('node-fetch');
const config = require('../config.json');
const api = config.api;

Upvotes: 1

Related Questions