javascript - sqlite.get() results in TypeError: Cannot read property 'get' of null -


when trying execute sql.get() call works in places, not in others , can't seem figure out what's difference.
database sucessfully opened or @ least never got error , never gets closed. use discord.js in second (working example), not sure if relevant, though.
in example doesn't work.
test.js:

const sql = require("sqlite"); sql.open("./data.sqlite");  exports.getitemid = function(item) {     return new promise(function (fulfill, reject){         sql.get(`select * items name="${item}"`).then(row => {             console.log(`do stuff`);         }).catch((e) => {             console.error;             reject(e);         })     }); }  exports.getitemid("coins").then(itemid => {     console.log(itemid); }).catch((e) => {     console.log(e); }); 

stacktrace:

$ node test.js  typeerror: cannot read property 'get' of null     @ promise (/users/julianveerkamp/node_modules/sqlite/main.js:225:18)     @ promise (<anonymous>)     @ database.get (/users/julianveerkamp/node_modules/sqlite/main.js:224:12)     @ /users/julianveerkamp/workspace/test-bot/test.js:6:13     @ promise (<anonymous>)     @ object.exports.getitemid (/users/julianveerkamp/workspace/test-bot/test.js:5:12)     @ object.<anonymous> (/users/julianveerkamp/workspace/test-bot/test.js:15:9)     @ module._compile (module.js:573:30)     @ object.module._extensions..js (module.js:584:10)     @ module.load (module.js:507:32) 

but when call function

const sql = require("sqlite"); sql.open("./data.sqlite"); // other stuff let commandfile = require(`./commands/command.js`); commandfile.run(client, message, args); // other stuff 

it works fine.

command.js:

const sql = require("sqlite"); sql.open("./data.sqlite");  exports.run = (client, message, args) => {     sql.get(`select * scores userid ="${message.author.id}"`).then(row => {         // stuff row     }).catch(() => {         console.error;     }); } 

this might bug in sqlite went ahead , used sqlite3 instead , wrapped/promisified functions myself util.promisify().

const util = require('util'); const sqlite3 = require('sqlite3');  var db = new sqlite3.database('./data.sqlite');  db.get = util.promisify(db.get); db.run = util.promisify(db.run);  exports.getitemid = function(item) {     return new promise(function (fulfill, reject){         db.get(`select * items name="${item}"`).then(row => {             console.log(`do stuff`);         }).catch((e) => {             console.error;             reject(e);         });     }); }  exports.getitemid("coins").then(itemid => {     console.log(itemid); }).catch((e) => {     console.log(e); }); 

note: new promise inside function not necessary. 1 return promise function.


Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -