gpt4 book ai didi

javascript - 如何将数据存储在database.db中而不丢失数据?

转载 作者:行者123 更新时间:2023-12-02 22:54:23 25 4
gpt4 key购买 nike

我正在尝试将不同文件中的多个数据保存到database.db中,而无需使用任何库(例如 MongoDB 或 MySQL)。

问题是 database.db 在从每个实例接收新数据时不断覆盖。

{"score":12} // It only saves the last data.

此外,当我不断刷新浏览器时,有时数据会以如下奇怪的模式合并:

{"score":12}p"} // That p is the last letter of a word from first instance, '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。

是否有任何方法可以存储数据而不会覆盖以及如何防止不必要的合并?

最佳答案

我认为你应该将 post 请求中的 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);
})

关于javascript - 如何将数据存储在database.db中而不丢失数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58055425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com