Estou tentando adicionar dados a um arquivo json existente(códigos abaixo). Quando eu acesso o locahost, a nova parte dos dados aparece, no entanto, quando eu verifico os dados (users.json), a nova parte dos dados (ou seja, user4) não está lá.
Alguém sabe o que há de errado com o código? Obrigado!
var express = require("express");
var app = express();
var fs = require("fs");
var user = {
"user4" : {
"name" : "mohit",
"password" : "password4",
"profession" : "teacher",
"id": 4
}
}
app.get("/addUser", function (req, res) {
// First read existing users.
fs.readFile( __dirname + "/" + "users.json", "utf8", function (err, data) {
data = JSON.parse( data );
data["user4"] = user["user4"];
console.log( data );
res.end( JSON.stringify(data));
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
EDITAR: Eu adicionei fs.writeFile(...)
(códigos abaixo). Depois de executar o código, o único conteúdo do arquivo uers.json é:utf8
var express = require("express");
var app = express();
var fs = require("fs");
var user = {
"user4" : {
"name" : "mohit",
"password" : "password4",
"profession" : "teacher",
"id": 4
}
}
app.get("/addUser", function (req, res) {
// First read existing users.
fs.readFile( __dirname + "/" + "users.json", "utf8", function (err, data) {
data = JSON.parse( data );
data["user4"] = user["user4"];
console.log( data );
// res.end( JSON.stringify(data));
data = JSON.stringify(data);
fs.writeFile(__dirname+"/"+"users.json", "utf8", function(err,data){
if (err){
console.log(err);
};
res.end(data);
});
});
})
Respostas:
0 para resposta № 1Para gravar em um arquivo, você deve usar fs.writeFile.
fs.writeFile(__dirname + "/" + "users.json", user["user4"], "utf8", function()
{
// do anything here you want to do after writing the data to the file
});
0 para resposta № 2
Eu passei dados para writeFile
para que possa escrever as informações na variável de dados para JSON
fs.readFile( __dirname + "/" + "users.json", "utf8", function (err, data) {
data = JSON.parse( data );
data["user4"] = user["user4"];
console.log( data );
data = JSON.stringify(data);
fs.writeFile(__dirname + "/" + "users.json", data , "utf8", function(err,data) {
if (err){
console.log(err);
};
res.end(data);
});
});