nodejsはデータベースを使用しません

WBOY
リリース: 2023-05-27 20:24:07
オリジナル
698 人が閲覧しました

Node.js は、Node.js の組み込みモジュールとコミュニティのモジュール マネージャーを通じて、他のテクノロジー スタックと簡単に統合できるバックエンド JavaScript ランタイム環境です。最も一般的に使用されるテクノロジー スタックの 1 つは、データベースを介してデータを保存および管理することです。ただし、場合によっては、データの処理と保存にデータベースを使用したくない場合もあり、データの保存と管理は他の方法で実現できます。この記事ではデータベースを使わずにNode.jsを使う方法をいくつか紹介します。

  1. JSON ファイルを使用してデータを保存する

JSON ファイルは、JavaScript Object Notation の略です。これは、可読性が高く、自動的に解析しやすい軽量のデータ交換形式です。したがって、JSON ファイルを使用してデータを保存できます。

Node.js では、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)
ログイン後にコピー

上記のコードでは、データを操作する 2 つの関数、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)
ログイン後にコピー

上記のコードでは、データを操作する 2 つの関数を定義します:

saveData(data)loadData(id)saveData(data) データ オブジェクトを JSON 文字列に変換し、ファイルとして保存し、そのファイル名をデータ オブジェクト内の一意の識別子に設定します (たとえば、ここでは ## という名前のファイルを使用します) #id 属性)。 loadData(id) データ オブジェクトの一意の識別子に基づいて対応するファイルを検索し、そのファイル内のデータを読み取ります。 ファイル ディレクトリを使用してデータを保存することで、データベースの使用に伴う追加コストやメンテナンス コストが回避され、データの管理とバックアップも容易になります。ただし、データ管理やクエリ操作については、ファイル操作のロジックを自分で記述する必要があり、SQL クエリよりも複雑な場合があるため、実際のアプリケーションでは適切なソリューションを選択する必要があります。

キャッシュを使用してデータを保存する
  1. 上記の 2 つの方法に加えて、キャッシュを使用してデータを保存することもできます。 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) キャッシュからデータを読み取ります。使い方は基本的にマップやオブジェクトと同じです。ただし、キャッシュされたデータはアプリケーションの実行中のみ有効であり、アプリケーションの実行が停止するとキャッシュされたデータは失われることに注意してください。 キャッシュを使用する利点は、通常、キャッシュの読み取りおよび書き込み速度が速いため、データをより速く処理できることです。ただし、キャッシュがアプリケーションのボトルネックになる場合 (キャッシュの有効期限が切れる、キャッシュが占有するメモリが大きすぎるなど)、キャッシュの使用量を最適化する必要があります。そうしないと、アプリケーションのパフォーマンスが低下する可能性があります。影響を受ける。

結論

この記事では、JSON ファイル、ファイル ディレクトリ、キャッシュを使用してデータを保存するなど、データベースを使用せずに Node.js を使用するいくつかの方法を紹介しました。これらの方法はアプリケーションに普遍的に適用できるわけではないため、アプリケーションのシナリオと要件に基づいて最適な方法を選択する必要があります。同時に、データ管理とクエリ操作については、それを実装するための独自のコードを作成する必要もあります。より良いアイデアや提案がある場合は、コメントで共有してください。

以上がnodejsはデータベースを使用しませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート