2017-09-18 13 views
0

MicroDBファイルで既に作成されたオブジェクトに追加することができるかどうかを確認しようとしています。jsonファイル内の既存の配列に物事を追加する

私は使用しようとしました.push()しかし、私は運がないです。

ファイルがすでにこのオブジェクトを持っています

{ 
    "home": { 
     "location": "walsall", 
     "time": "12:00", 
     "date": "12/12/17", 
     "gym": "home", 
     "players": "" 
    } 
} 

ファイルは、私は、ユーザーが参加することを望んでいるときplayersキーに何かを追加しようとしている.json

です。

助けが必要ですか?また、前述のplayersセクションからuser nameを削除するにはどうすればよいですか?

編集:あなたはJavaScriptをタグ付けしたよう

私の.jsからいくつかのコードは、私はあなたがNode.jsを使用している正しいと仮定しています、

if (commandEX.toLowerCase() === "join") { 
    var joinEX = message.content.split(' ')[2]; 
    if (joinEX === undefined) { 
     return message.reply("**ERROR**: No gym entered, enter a gym to join.").then(m => m.delete(10000)); 
    } 
    var removeTrigger = message.content.split(' ')[0]; 
    var findGym = message.content.slice(removeTrigger.length); 
    findGym = findGym.slice(commandEX.length); 
    findGym = findGym.slice(2); 
    var commandFind = exRaidDB.data[findGym]; 
    memberEX = message.member.nickname; 
    if (commandFind == undefined) { 
     message.channel.send(`**ERROR**: No ex raid at that gym.`).then(m => m.delete(10000)); 
    } else { 
     message.channel.send(`**Added ${memberEX} to the list, details below.** \n**EX Raid at** ${commandFind.gym} \n**Date**: ${commandFind.date} \n**Time**: ${commandFind.time} \n**Location**: ${commandFind.location}`); 
     // this line is where the code needs to be for adding the $[message.member.nickname} into the "players" string. 
    } 
} 
+0

人々はいくつかのコードを見てみたいとして、そしてすべてのエラーを明確に説明されている次のような


は、しかし、その代わりに、直接ファイルを扱うのは、簡単なラッパーを使用することができます。 – jdv

+0

'players'の値は*文字列*です。それを配列にしたい場合は、最初に配列を代入する必要があります。 –

+0

私は自分のオペレーションにいくつかのコードを追加しましたが、フォーマットについてはごめんなさい! – sam1338

答えて

0

を提出?

fs.writeFileSync(PATH_TO_JSON, JSON.stringify(newObj), 'utf8');ここで、newObjは、.json -fileに保存する新しいオブジェクトです。

let 
    fs = require('fs'), 
    PATH_TO_JSON = ''; 

function readJson() { 
    if (!fs.existsSync(PATH_TO_JSON)) { 
     writeJson(); 
    } 
    return JSON.parse(fs.readFileSync(PATH_TO_JSON, 'utf8')); 
} 

function writeJson(obj = {}) { 
    fs.writeFileSync(PATH_TO_JSON, JSON.stringify(obj), 'utf8'); 
} 

function Ressource(path) { 
    PATH_TO_JSON = path; 
    this.data = readJson(); 
} 

Ressource.prototype.set = function(obj) { 
    this.data = obj; 
}; 

Ressource.prototype.save = function() { 
    writeJson(this.data); 
}; 

module.exports = Ressource; 
+0

私は自分のopにいくつかのコードを追加しましたが、フォーマットについてはごめんなさい! – sam1338

+0

これは私が投稿したコードで動作しますか?私は実際にその仕組みが見えない – sam1338

関連する問題