js实现数据库操作
JavaScript 实现数据库操作的方法
JavaScript 可以通过多种方式操作数据库,包括浏览器端的本地存储、服务器端的数据库连接以及使用 ORM 框架等。以下是几种常见的实现方法:
浏览器端存储(客户端数据库)
1. Web Storage API(localStorage/sessionStorage)
适用于简单的键值对存储,数据保存在浏览器中。
// 存储数据
localStorage.setItem('key', 'value');
// 读取数据
const value = localStorage.getItem('key');
// 删除数据
localStorage.removeItem('key');
2. IndexedDB
适用于存储结构化数据,支持事务和索引查询。

const request = indexedDB.open('myDatabase', 1);
request.onupgradeneeded = (event) => {
const db = event.target.result;
const store = db.createObjectStore('users', { keyPath: 'id' });
};
request.onsuccess = (event) => {
const db = event.target.result;
const transaction = db.transaction('users', 'readwrite');
const store = transaction.objectStore('users');
// 添加数据
store.add({ id: 1, name: 'Alice' });
// 查询数据
const getRequest = store.get(1);
getRequest.onsuccess = () => console.log(getRequest.result);
};
服务器端数据库操作
1. 使用 Node.js 连接关系型数据库(如 MySQL)
通过 mysql 或 mysql2 模块连接数据库。
const mysql = require('mysql2');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test'
});
connection.query('SELECT * FROM users', (err, results) => {
console.log(results);
});
connection.end();
2. 使用 MongoDB(NoSQL 数据库)
通过 mongodb 或 mongoose 驱动操作。

const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
async function run() {
await client.connect();
const db = client.db('test');
const collection = db.collection('users');
// 插入数据
await collection.insertOne({ name: 'Bob' });
// 查询数据
const users = await collection.find({}).toArray();
console.log(users);
}
run().catch(console.error);
使用 ORM 框架
1. Sequelize(支持 MySQL/PostgreSQL/SQLite 等)
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
const User = sequelize.define('User', {
name: DataTypes.STRING
});
async function test() {
await sequelize.sync();
await User.create({ name: 'Charlie' });
const users = await User.findAll();
console.log(users);
}
test();
2. Prisma(现代 ORM 工具)
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
await prisma.user.create({ data: { name: 'Dave' } });
const users = await prisma.user.findMany();
console.log(users);
}
main().finally(() => prisma.$disconnect());
注意事项
- 浏览器端存储(如 IndexedDB)受同源策略限制,无法跨域访问。
- 服务器端数据库操作需注意安全性(如 SQL 注入),推荐使用参数化查询或 ORM。
- 对于实时数据同步,可考虑 Firebase 或 Supabase 等 BaaS 服务。






