Javascript 如何在不丢失数据的情况下在database.db中存储数据?
我正在尝试将不同文件中的多个数据保存到database.db中,而不使用任何库,如MongoDB或MySQL 一个问题是database.db从每个实例接收新数据时会不断覆盖 {score:12}//它只保存最后的数据 此外,当我不断刷新浏览器时,有时数据会以一种奇怪的模式合并,如下所示: {score:12}p}//p是来自第一个实例“Temp”的单词的最后一个字母 我在代码中就是这样做的:Javascript 如何在不丢失数据的情况下在database.db中存储数据?,javascript,node.js,json,database,object,Javascript,Node.js,Json,Database,Object,我正在尝试将不同文件中的多个数据保存到database.db中,而不使用任何库,如MongoDB或MySQL 一个问题是database.db从每个实例接收新数据时会不断覆盖 {score:12}//它只保存最后的数据 此外,当我不断刷新浏览器时,有时数据会以一种奇怪的模式合并,如下所示: {score:12}p}//p是来自第一个实例“Temp”的单词的最后一个字母 我在代码中就是这样做的: // instance1.js class A { constructor(name) {
// 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
有没有办法存储数据而不进行覆盖,以及如何防止不必要的合并?我认为您应该在请求后将writeFile更改为appendFile
app.post('/', (request, response) => {
var object = JSON.stringify(request.body);
fs.appendFile('database.db', object, (data) => {
console.log(data);
});
response.json(request.body);
})