2016-04-03 47 views
0

我正在嘗試將用戶詳細信息從註冊表單附加到json文件,以便用戶詳細信息可用於身份驗證。問題是我不能夠追加到正確的format.The碼我曾試圖迄今已是JSON文件,對象在節點js中沒有方法推送

var filename= "./user_login.json"; 
var contents = fs.readFileSync(filename); 
var jsonContent = JSON.parse(contents); 
//sample data 
var data =[ 
{ 
    "try" : "till success" 
} 
]; 

jsonContent.push(data); 

fs.writeFileSync(filename,jsonContent); 

我已經試過,我發現谷歌搜索通過並沒有什麼不同的方法,到目前爲止的工作。我希望數據以正確的格式存儲。大多數時候,我得到這個錯誤像對象沒有推功能。那麼對此有什麼選擇? 正確的格式我期待的是,

[ 
    user1-details : { 
     //user1 details 
    }, 

    user2-deatils : { 

    }//So on 
] 
+0

爲什麼不使用'require('./ user_login.json')'來讀入和解析JSON文件? – 2016-04-03 06:09:07

回答

2

對象沒有推送功能,數組做。你的json也是無效的,它應該是一個數組:

[ // here 
    { 
     //user1 details 
    }, 

    { 
     //So on 
    } 
] // and here 

現在,你可以使用push()。然而,data是一個數組,如果你想在你的JSON文件對象的數組,它應該是一個簡單的對象:

var data = { 
    "try" : "till success" 
}; 

您也可以寫回文件前字符串化對象:

fs.writeFileSync(filename, JSON.stringify(jsonContent)); 

您應該考慮使用類似node-json-db,很會照顧的讀/寫文件(S),它爲您提供了輔助功能(save()push() ...)。