I run async function with meteor bindEnvironment within Method, where I’d like to use imported function that works everywhere else. The imported helper is in libs folder.
Server logs error:
Exception in callback of async function: TypeError: encode is not a function
I20170531-19:47:56.330(6)? at lib/methods.js:81:27
I20170531-19:47:56.331(6)? at runWithEnvironment (packages/meteor.js:1176:24)
if (this.isSimulation) return;
for (var i in user.chars) {
if (user.chars[i].characterID == charId) {
var key = user.apiKeys[user.chars[i].apiKeyIndex];
var result = EveOnline.fetch('char:CharacterSheet', { keyID: key.key1, vCode: key.key2, characterID: charId },
Meteor.bindEnvironment(function(err, result) {
if (err) {
throw err;
} else {
var skillList = {};
for (let id in result.skills) {
//unideal async from meteorhacks
let getSync = Async.wrap(EveDatabase, 'get');
let row = getSync("SELECT typeName FROM invTypes WHERE typeID = '" + id + "';");
result.skills[id].typeName = (row != undefined) ? row.typeName : 'Unknown';
}
for (let item in result.skills) {
skillList[result.skills[item].typeName]= Number(result.skills[item].level);
}
var encodedSkills = encode(skillList);
var nencode= encode
console.log("econde",encodedSkills, typeof encode, nencode )
CharsInfo.upsert({characterID: charId}, {
skills: encodedSkills,
lastUpdate: new Date()
});
return result
}
}));
break;
}
never mind, used different and wrong import syntax.