Я пытаюсь сохранить несколько данных из разных файлов в database.db
без каких-либо библиотек, таких как MongoDB или MySQL.
Проблема в том, что database.db
продолжает перезаписывать при получении новых данных от каждого экземпляра.
{"score": 12} // Сохраняет только последние данные.
Кроме того, когда я постоянно обновляю браузер, иногда данные собираются в странный шаблон, подобный следующему:
{"score": 12} p "} // То, что p - последняя буква слова из первого экземпляра, «Temp».
Вот как я сделал в коде:
// instance1.js
class A {
constructor(name) {
this.name = name
this.post();
}
async post() {
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(this)
};
const response = await fetch('/', options);
const json = await response.json();
}
}
let newa = new A('Temp');
// instance2.js
class B {
constructor(score) {
this.score = score
this.post();
}
async post() {
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(this)
};
const response = await fetch('/', options);
const json = await response.json();
}
}
let newb = new B(12);
// server.js
const express = require('express');
const fs = require('fs');
const app = express();
app.listen(3000, () => console.log('initialized . . .'));
app.use(express.static('public'));
app.use(express.json({limit: '10mb'}));
app.post('/', (request, response) => {
var instance = request.body,
object = JSON.stringify(instance);
fs.writeFile('database.db', object, () => {
console.log(object);
});
response.json(request.body);
})
Моя цель -сохранить объекты в базе данных для отправки обратно на клиентский javascript.
Существуют ли способы хранения данных без перезаписи и как предотвратить нежелательное слияние?