3 JavaScript Orms yang mungkin anda tidak tahu
mata teras
- Artikel ini memperkenalkan tiga orm JavaScript yang boleh digunakan untuk menguruskan data kompleks dalam aplikasi: bookshelf.js, Sequelize, dan Lovefield. Bookshelf.js dan Sequelize direka untuk node.js dan berfungsi dengan baik dengan PostgreSQL, MySQL, MariaDB, SQLite3, dan MSSQL. LoveField adalah pangkalan data relasi aplikasi Web yang dibina di IndexEdDB, yang dibangunkan oleh Google.
- bookshelf.js dan Sequelize membolehkan pemaju membuat hubungan satu-ke-satu, satu-banyak dan banyak-banyak antara jadual. Mereka juga menyokong urus niaga, hubungan, bacaan dan replikasi. Walaupun Lovefield tidak menyokong pertanyaan SQL mentah, ia meniru sintaks SQL dan menyokong urus niaga asid, sekatan dan melangkau, pertanyaan parameter, dll.
- Walaupun pengetahuan SQL adalah penting kepada pemaju, JavaScript Orm dapat memudahkan kerja dengan mengendalikan data kompleks dan interaksi pangkalan data. Pemilihan ORM harus berdasarkan keperluan khusus projek, kerumitan pangkalan data, dan fungsi yang diperlukan.
- Bahagian penyemak imbas: Tidak perlu terhad kepada ECMAScript dan DOM API. Coffeescript dan Dart menyusun bahasa JavaScript tulen yang dapat membantu anda menulis kod lebih cepat dan lebih baik.
- Sisi pelayan: Bilangan node.js dan kerangka banyaknya semakin meningkat, membantu pemaju depan menjadi pemaju penuh.
- Aplikasi mudah alih: Menggunakan rangka kerja seperti Cordova dan Ionic atau NativeScript, anda boleh membina aplikasi mudah alih dengan lebih cepat tanpa mempelajari bahasa lain seperti Java atau Swift/Objektif-C. Dengan rangka kerja ini, anda juga boleh berkongsi kod sumber antara platform mudah alih.
- iot: SitePoint telah menerbitkan beberapa artikel oleh Patrick Catanzariti, yang sangat membantu dalam hal ini.
bookshelf.js
bookshelf.js adalah node.js orm yang direka untuk berfungsi dengan baik dengan PostgreSQL, MySQL, MariaDB, dan SQLite3. Ia dibina di Knex SQL Query Builder dan mengikuti beberapa corak dalam Backbone.js, seperti model dan koleksi dan konvensyen penamaan yang serupa. Jika anda pernah menggunakan Backbone, anda mungkin terbiasa dengan rak buku dengan cepat. Untuk memasang rak buku, anda perlu memasang Knex dan pemacu pangkalan data:# 获取 knex $ npm install knex --save # 获取 bookshelf $ npm install bookshelf --save # 获取其中一个数据库驱动程序 $ npm install pg $ npm install mysql $ npm install mariasql $ npm install sqlite3
Selepas pemasangan selesai (pastikan untuk lulus bendera -save supaya ia ditambahkan ke fail pakej.json), anda boleh menggunakannya dalam aplikasi Node.js anda seperti ini:
var knexInstance = require('knex')({ client: 'mysql', // 或您正在使用的数据库 connection: { host : '127.0.0.1', user : 'scott', password : 'tiger', // Scott 的猫的名字 database : 'db_name', charset : 'utf8' } }); // 通过传递 Knex 实例来初始化 Bookshelf var bookshelf = require('bookshelf')(knexInstance); var User = bookshelf.Model.extend({ tableName: 'users' });
var User = bookshelf.Model.extend({ tableName: 'users', posts: function() { return this.hasMany(Post); } }); var Post = bookshelf.Model.extend({ tableName: 'posts', user: function() { return this.belongsTo(User); } });
Sequelize
Sequelize adalah satu lagi orm node.js dan io.js (mereka akhirnya digabungkan bersama). Ia menyokong PostgreSQL, MySQL, MariaDB, SQLite dan MSSQL, dan mempunyai sokongan transaksi yang kuat, hubungan, membaca dan replika fungsi. Anda boleh memasangnya dengan menjalankan arahan berikut:
# 安装 Sequelize $ npm install --save sequelize # 安装数据库驱动程序 $ npm install --save pg pg-hstore # 对于 mysql 和 mariadb 方言 $ npm install --save mysql $ npm install --save sqlite3 # MSSQL $ npm install --save tedious
var Sequelize = require('sequelize'); var sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql', // 使用其中一个 pool: { max: 5, min: 0, idle: 10000 }, // 仅限 SQLite storage: 'path/to/database.sqlite' }); // 或者您可以简单地使用连接 uri var sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
var User = sequelize.define('user', { firstName: { type: Sequelize.STRING, field: 'first_name' // `first_name` 列与 User.firstName 匹配 }, lastName: { type: Sequelize.STRING } }, { freezeTableName: true // 模型 tableName (`user`) 将与模型名称相同 });
Project.hasMany(Developer, {as: 'devs'})
Lovefield
Lovefield bukan Orm sebenar. Ia sebenarnya merupakan pangkalan data relasi untuk aplikasi web, yang dibina di IndexEdDB, yang dibangunkan oleh Google, dan ditulis sepenuhnya dalam JavaScript. Ia tidak menyokong pertanyaan SQL mentah, tetapi ia dilengkapi dengan API yang cuba meniru sintaks SQL. Anda boleh memasangnya menggunakan Bower:
$ bower install lovefield --save
$ npm install lovefield --save
// 为“待办事项列表”创建数据库 var todoDB = lf.schema.create('todo_db', 1); var item = todoDB.createTable('items') .addColumn('id', lf.Type.INTEGER) .addColumn('task', lf.Type.STRING) .addColumn('deadline', lf.Type.DATE_TIME) .addColumn('done', lf.Type.BOOLEAN) .addPrimaryKey(['id']);
todoDB.select() .from(item) .where(item.done.eq(false)) .exec(); // exec() 返回一个 Promise
# 获取 knex $ npm install knex --save # 获取 bookshelf $ npm install bookshelf --save # 获取其中一个数据库驱动程序 $ npm install pg $ npm install mysql $ npm install mariasql $ npm install sqlite3
anda juga boleh menyusunnya seperti berikut:
var knexInstance = require('knex')({ client: 'mysql', // 或您正在使用的数据库 connection: { host : '127.0.0.1', user : 'scott', password : 'tiger', // Scott 的猫的名字 database : 'db_name', charset : 'utf8' } }); // 通过传递 Knex 实例来初始化 Bookshelf var bookshelf = require('bookshelf')(knexInstance); var User = bookshelf.Model.extend({ tableName: 'users' });
Di samping pertanyaan mudah ini, Lovefield dapat mengendalikan pertanyaan yang lebih kompleks, seperti bergabung. Jika saya mempunyai rujukan dalam dua projek jadual dan pemaju (merujuk kepada projek jadual dan pemaju), dan ingin melihat semua projek untuk pemaju tertentu, saya akan menulis:
var User = bookshelf.Model.extend({ tableName: 'users', posts: function() { return this.hasMany(Post); } }); var Post = bookshelf.Model.extend({ tableName: 'posts', user: function() { return this.belongsTo(User); } });
supaya anda dapat melihat bahawa Lovield bertindak sebagai lapisan SQL di atas IndexedDB. Ia juga menyokong urus niaga asid (atomik, konsistensi, pengasingan, kegigihan), sekatan dan melangkau (berguna apabila paging), pertanyaan parameter, dan banyak lagi. Sama seperti Orms lain, anda boleh memuat turun Lovefield dari GitHub.
Kesimpulan
Setiap pemaju harus mempunyai pengetahuan SQL, tetapi menulis pertanyaan SQL adalah membosankan, terutama dengan begitu banyak Orms. Apabila mereka membuat pekerjaan anda lebih mudah, mengapa tidak menggunakannya pada mulanya? Dalam artikel ini, saya telah merangkumi beberapa Orms yang paling penting yang dikeluarkan setakat ini. Terima kasih kepada contoh -contoh yang disediakan untuk setiap ORM, anda kini boleh secara sedar menentukan ORM yang digunakan dan ORM yang sesuai dengan keperluan anda. Bagaimana dengan anda? Orm JavaScript mana yang anda gunakan? Sila komen pilihan anda di bawah.
(bahagian FAQ berikutnya telah ditinggalkan kerana kandungannya lemah berkaitan dengan topik artikel dan terlalu panjang, yang akan menjejaskan kesan pseudo-asal. Jika perlu, anda boleh mencadangkannya secara berasingan.)
Atas ialah kandungan terperinci 3 JavaScript Orms yang mungkin anda tidak tahu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing
