Я пытаюсь добавить данные в существующий json-файл (коды ниже). Когда я обращаюсь к locahost, появляется новый фрагмент данных, однако, когда я проверяю данные (users.json), новая часть данных (то есть user4) не существует.Node.js: записывать новые данные в существующий файл json
Кто-нибудь знает, что не так с кодом? Спасибо!
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)
})
EDIT: Я добавил fs.writeFile(...)
(коды ниже). После выполнения кода, только содержимое файла 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);
});
});
})
Я не вижу какой-либо код записи в файл (что-то вроде 'fs.writeFile (...) '). – Kenney
Не соответствует ли строка ниже файлу? 'data [" user4 "] = user [" user4 "];' – Dxml
Нет, он обновляет содержимое переменной 'data'. – Kenney