Heim > Artikel > Web-Frontend > nodejs verwendet keine Datenbank
Node.js ist eine Back-End-JavaScript-Laufzeitumgebung, die über die integrierten Module von Node.js und den Modulmanager der Community problemlos in andere Technologie-Stacks integriert werden kann. Einer der am häufigsten verwendeten Technologie-Stacks ist die Speicherung und Verwaltung von Daten über Datenbanken. In einigen Fällen möchten wir jedoch möglicherweise keine Datenbank für die Datenverarbeitung und -speicherung verwenden, und die Datenspeicherung und -verwaltung kann auf andere Weise erreicht werden. In diesem Artikel werden einige Möglichkeiten vorgestellt, Node.js ohne Verwendung einer Datenbank zu verwenden.
JSON-Dateien sind die Abkürzung für JavaScript Object Notation. Es handelt sich um ein leichtes Datenaustauschformat, das gut lesbar und leicht automatisch zu analysieren ist. So können wir Daten mithilfe von JSON-Dateien speichern.
In Node.js können wir das fs
-Modul verwenden, um das Dateisystem zu betreiben. Über das fs
-Modul können wir JSON-Dateien sehr bequem lesen und schreiben. Das Folgende ist ein Beispielcode, der JSON-Dateien zum Speichern von Daten verwendet: fs
模块操作文件系统。通过 fs
模块,我们可以非常方便地读取和写入 JSON 文件。下面是一个使用 JSON 文件来存储数据的示例代码:
const fs = require('fs') const dataFilePath = './data.json' function loadData() { const fileContent = fs.readFileSync(dataFilePath, 'utf-8') const data = JSON.parse(fileContent) return data } function saveData(data) { const dataJSON = JSON.stringify(data) fs.writeFileSync(dataFilePath, dataJSON) } const data = loadData() console.log(data) data.push('new data') saveData(data)
在上面的代码中,我们定义了两个操作数据的函数:loadData()
和 saveData()
。loadData()
从 JSON 文件中读取数据,并将其转换为 JavaScript 对象。saveData(data)
将 JavaScript 对象转换为 JSON 字符串,并将其写入 JSON 文件。
此时我们可以操作 data
数组,比如向其中添加一项,最后通过 saveData(data)
将更新后的数据写入 JSON 文件。这样我们就可以使用 JSON 文件来存储和管理数据了。
值得注意的是,当数据量较小的时候,使用 JSON 文件确实是一种不错的选择,但是当数据量变大时,其性能和效率可能并不是很高,并且也没有 SQL 数据库的严格约束规则,所以在实际应用中需要谨慎考虑。
除了使用 JSON 文件来存储数据,我们还可以使用文件目录来存储数据。将每个文档保存为单独的文件,并且在文件名中包含一些数据标识信息,然后将这些文件存储在一个目录中。这种方式类似于使用 Git 来管理代码库,其中每个 Git 对象都是一个文件存储在 .git
目录下。
下面是一个使用文件目录来存储数据的示例代码:
const fs = require('fs') const path = require('path') const dataDirPath = './data/' function saveData(data) { const { id, content } = data const filename = `${id}.json` fs.writeFileSync(path.join(dataDirPath, filename), content) } function loadData(id) { const filename = `${id}.json` const fileContent = fs.readFileSync(path.join(dataDirPath, filename), 'utf-8') return fileContent } const data = { id: '001', content: 'data content' } saveData(data) const retrievedData = loadData(data.id) console.log(retrievedData)
在上面的代码中,我们定义了两个操作数据的函数:saveData(data)
和 loadData(id)
。saveData(data)
将数据对象转换为 JSON 字符串,并将其保存为一个文件,并将其文件名设置为数据对象中的唯一标识符(比如这里我们使用了一个名为 id
的属性)。loadData(id)
根据数据对象的唯一标识符查找相应的文件,并读取其中的数据。
通过使用文件目录来存储数据,我们避免了使用数据库的额外成本和维护成本,也方便管理和备份数据。但是对于数据管理和查询操作,我们需要自己编写文件操作的逻辑,这些操作的复杂度可能比 SQL 查询高,所以在实际应用中需要选择合适的方案。
除了上述两种方式,我们还可以使用缓存来存储数据。Node.js 中有许多流行的缓存模块,比如 Node-Cache 和 Node-RAMCache。我们可以使用这些模块来存储数据,以及读取和更新数据。
下面是一个使用 Node-Cache 模块来存储数据的示例代码:
const cache = require('node-cache') const myCache = new cache() const data = { id: '001', content: 'data content' } myCache.set(data.id, data.content) const retrievedData = myCache.get(data.id) console.log(retrievedData)
在上面的代码中,我们通过使用 Node-Cache 模块来存储数据。myCache.set(data.id, data.content)
从缓存中存储数据,myCache.get(data.id)
rrreee
loadData()
und saveData()
. loadData()
liest Daten aus einer JSON-Datei und konvertiert sie in ein JavaScript-Objekt. saveData(data)
Konvertiert ein JavaScript-Objekt in einen JSON-String und schreibt ihn in eine JSON-Datei. An diesem Punkt können wir das Array data
bedienen, beispielsweise ein Element hinzufügen, und schließlich die aktualisierten Daten über saveData(data)
schreiben > JSON-Datei. Auf diese Weise können wir JSON-Dateien zum Speichern und Verwalten von Daten verwenden. Es ist erwähnenswert, dass die Verwendung von JSON-Dateien zwar eine gute Wahl ist, wenn die Datenmenge klein ist, aber wenn die Datenmenge groß wird, sind ihre Leistung und Effizienz möglicherweise nicht sehr hoch Für SQL-Datenbanken gibt es keine strengen Einschränkungsregeln, daher ist bei praktischen Anwendungen eine sorgfältige Überlegung erforderlich.
.git
gespeichert ist. #🎜🎜##🎜🎜#Das Folgende ist ein Beispielcode, der ein Dateiverzeichnis zum Speichern von Daten verwendet: #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir zwei Funktionen, die mit Daten arbeiten: saveData (data)
und loadData(id)
. saveData(data)
Konvertieren Sie das Datenobjekt in eine JSON-Zeichenfolge, speichern Sie es als Datei und legen Sie seinen Dateinamen auf den eindeutigen Bezeichner im Datenobjekt fest (hier verwenden wir beispielsweise einen Namen). Attribut von id
). loadData(id)
Suchen Sie die entsprechende Datei anhand der eindeutigen Kennung des Datenobjekts und lesen Sie die darin enthaltenen Daten. #🎜🎜##🎜🎜# Durch die Verwendung von Dateiverzeichnissen zum Speichern von Daten vermeiden wir die zusätzlichen Kosten und Wartungskosten für die Verwendung einer Datenbank und erleichtern außerdem die Datenverwaltung und -sicherung. Für die Datenverwaltung und Abfragevorgänge müssen wir jedoch die Logik von Dateivorgängen selbst schreiben. Die Komplexität dieser Vorgänge kann höher sein als bei SQL-Abfragen, sodass wir in tatsächlichen Anwendungen eine geeignete Lösung auswählen müssen. #🎜🎜#myCache.set(data.id, data.content)
speichert Daten aus dem Cache und myCache.get(data.id)
liest Daten aus dem Cache. Ihre Verwendung ist im Grunde die gleiche wie bei Map oder Object. Es ist jedoch zu beachten, dass die zwischengespeicherten Daten nur gültig sind, während die Anwendung ausgeführt wird. Sobald die Anwendung nicht mehr ausgeführt wird, gehen die zwischengespeicherten Daten verloren. #🎜🎜##🎜🎜#Der Vorteil der Verwendung von Cache besteht darin, dass der Cache normalerweise hohe Lese- und Schreibgeschwindigkeiten aufweist, sodass wir Daten schneller verarbeiten können. Es ist jedoch zu beachten, dass wir die Cache-Nutzung optimieren müssen, wenn der Cache zum Engpass der Anwendung wird (der Cache läuft ab, der vom Cache belegte Speicher ist zu groß usw.), da sonst die Leistung der Anwendung beeinträchtigt werden kann betroffen sein. #🎜🎜##🎜🎜#Fazit#🎜🎜##🎜🎜#In diesem Artikel wurden einige Möglichkeiten zum Speichern von Daten in Node.js ohne Verwendung einer Datenbank untersucht, einschließlich der Verwendung von JSON-Dateien, Dateiverzeichnissen und Caches. Diese Methoden sind in Anwendungen nicht universell einsetzbar und die am besten geeignete Methode muss basierend auf Anwendungsszenarien und Anforderungen ausgewählt werden. Gleichzeitig müssen wir für die Datenverwaltung und Abfragevorgänge auch unseren eigenen Code schreiben, um ihn zu implementieren. Wenn Sie bessere Ideen oder Vorschläge haben, teilen Sie diese bitte in den Kommentaren mit. #🎜🎜#Das obige ist der detaillierte Inhalt vonnodejs verwendet keine Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!