📜  javascript 的数据库(1)

📅  最后修改于: 2023-12-03 14:42:37.222000             🧑  作者: Mango

JavaScript 的数据库

在 Web 开发领域中,处理和存储数据是至关重要的。而 JavaScript 作为一门前端语言,也能够提供便捷的数据库操作方法,让开发者可以更方便地处理数据。

浏览器端数据存储

在浏览器端,JavaScript 提供了多种数据存储方式,常见的有:

1. Cookie

Cookie 是一种保存在客户端的小型文本文件,可以存储少量数据,通常被用来保存用户的登录信息、选项设置等。JavaScript 提供了 document.cookie 接口来读写 Cookie。

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2022 12:00:00 UTC; path=/";
console.log(document.cookie); // "username=John Doe"
2. Web Storage

Web Storage 是指浏览器提供的一组 API,包括 localStoragesessionStorage,它们可以在浏览器中保存更大量级的数据。其中,localStorage 没有过期时间,存储的数据会一直保留,而 sessionStorage 只在当前会话(窗口)内有效,关闭窗口时数据会被清除。

// 使用 localStorage 存储数据
localStorage.setItem("username", "John Doe");
console.log(localStorage.getItem("username")); // "John Doe"

// 使用 sessionStorage 存储数据
sessionStorage.setItem("username", "Jane Doe");
console.log(sessionStorage.getItem("username")); // "Jane Doe"
3. IndexedDB

IndexedDB 是一种浏览器端的 NoSQL 数据库,在浏览器中可以创建数据库并存储大量数据。使用 IndexedDB 需要掌握一些异步编程的技巧,因为 API 的大部分操作都是异步的。

// 在 IndexedDB 中创建数据库
const request = indexedDB.open("myDB", 1);

request.onupgradeneeded = (event) => {
  const db = event.target.result;

  // 创建一个名为 "users" 的 object store
  db.createObjectStore("users", {
    keyPath: "id"
  });
};

request.onsuccess = (event) => {
  const db = event.target.result;
  const tx = db.transaction("users", "readwrite");
  const store = tx.objectStore("users");

  // 添加数据
  store.put({
    id: 1,
    name: "John Doe",
    age: 30
  });

  // 获取数据
  const getReq = store.get(1);

  getReq.onsuccess = (event) => {
    console.log(event.target.result); // { id: 1, name: "John Doe", age: 30 }
  };
};
服务端数据存储

除了浏览器端,JavaScript 还可以在服务端运行,在这种情况下,开发者可以使用 Node.js 自带的模块或者第三方模块进行数据存储。

1. 文件系统

使用 Node.js 的 fs 模块可以对文件系统进行读写操作,从而实现数据的存储。这种方式可以方便地存储小量数据,但不太适用于大量数据的处理。

const fs = require("fs");

// 写入文件
fs.writeFile("data.txt", "Hello, world!", (err) => {
  if (err) throw err;
  console.log("File written!");
});

// 读取文件
fs.readFile("data.txt", "utf8", (err, data) => {
  if (err) throw err;
  console.log(data); // "Hello, world!"
});
2. 数据库系统

在服务端,使用数据库系统是更加适用的数据存储方式。常用的 Node.js 数据库模块有 MySQL、MongoDB、Redis 等。

以 MySQL 为例,使用第三方模块 mysql 可以连接 MySQL 数据库,进行数据的读写。

const mysql = require("mysql");

// 连接 MySQL 数据库
const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "my_db"
});

// 插入数据
const sql = "INSERT INTO users (username, age) VALUES (?, ?)";
const values = ["John Doe", 30];

connection.query(sql, values, (error, results, fields) => {
  if (error) throw error;
  console.log("Data added!");
});

// 查询数据
connection.query("SELECT * FROM users", (error, results, fields) => {
  if (error) throw error;
  console.log(results);
});

// 关闭连接
connection.end();
总结

JavaScript 的数据库操作涉及多种技术和模块,掌握了这些技术,可以更好地处理和存储数据。在实际开发中,需要根据具体的需求和场景选择适合的存储方式。