Apabila membina aplikasi dengan Node.js secara umum atau Total.js khususnya, pertanyaan dan pengurusan data dengan cekap adalah penting. Dalam blog ini, kami akan membincangkan cara melaksanakan operasi data asas menggunakan QueryBuilder Total.js. Bahagian pertama ini akan memperkenalkan konsep asas, menunjukkan tindakan teras seperti memasukkan dan mendapatkan semula data serta mempamerkan contoh praktikal untuk membantu anda bermula.
Total.js's QueryBuilder menawarkan lapisan abstraksi yang kuat untuk berinteraksi dengan pelbagai pangkalan data melalui operasi seperti menapis, memasukkan, mengemas kini dan mendapatkan semula data. Sama ada anda sedang mengusahakan aplikasi ringan atau mengurus pertanyaan yang kompleks, QueryBuilder menyediakan penyelesaian ORM yang ringkas namun fleksibel untuk aplikasi Node.js.
QueryBuilder bertindak sebagai lapisan tengah, mengabstraksi spesifikasi enjin pangkalan data. Untuk menggunakannya dengan berkesan, anda perlu menyepadukan pelaksanaan sedia ada atau membina sendiri yang memenuhi keperluan anda. Total.js menyokong berbilang enjin pangkalan data, memastikan fleksibiliti untuk kes penggunaan yang berbeza.
Berikut ialah pelaksanaan yang tersedia pada masa ini:
Dalam panduan ini, kami akan bermula dengan pangkalan data NoSQL (TextDB) terbenam untuk menunjukkan cara mentakrif skema dan melakukan tindakan asas seperti pertanyaan, memasukkan dan mengemas kini data. Pada akhirnya, anda akan mempunyai kemahiran untuk menyesuaikan operasi ini untuk enjin pangkalan data lain yang disokong.
Untuk belajar dengan berkesan, kami akan mencipta fail pangkalan data NoSQL ujian dengan sampel data pengguna.
Persediaan Pangkalan Data: Cipta fail pangkalan data/users.nosql untuk menyimpan sampel rekod pengguna:
{"id": 2, "name": "Bob", "age": 30} {"id": 3, "name": "Charlie", "age": 28} {"id": 4, "name": "Diana", "age": 22} {"id": 5, "name": "Edward", "age": 35} {"id": 6, "name": "John", "age": 45} {"id": 7, "name": "Fiona", "age": 27} {"id": 8, "name": "George", "age": 29} {"id": 9, "name": "Hannah", "age": 24} {"id": 10, "name": "Isaac", "age": 31} {"id": 11, "name": "Julia", "age": 26}
Baik untuk diketahui: Anda tidak perlu mencipta fail .nosql secara manual dalam folder pangkalan data. Rangka kerja dapat menciptanya semasa operasi sisipan jika ia tidak wujud. Tetapi kandungan fail .nosql adalah plaintext dan penting untuk memahami strukturnya. Mungkin berguna untuk membetulkan kes tertentu.
Definisi Skema: Buat skema dengan tindakan dalam schemas/users.js. Kami akan menentukan tindakan untuk menyenaraikan, mendapatkan semula dan memasukkan pengguna.
Dalam schemas/users.js, kami akan mentakrifkan tindakan untuk menyenaraikan dan memasukkan pengguna. Skema ini menggunakan kaedah QueryBuilder untuk menapis data, mendapatkan semula rekod tertentu dan menambah pengguna baharu pada pangkalan data.
1. Menyenaraikan Pengguna dengan Penapis
Kami mulakan dengan menentukan tindakan senarai untuk mendapatkan semula pengguna berdasarkan kriteria seperti nama atau umur.
{"id": 2, "name": "Bob", "age": 30} {"id": 3, "name": "Charlie", "age": 28} {"id": 4, "name": "Diana", "age": 22} {"id": 5, "name": "Edward", "age": 35} {"id": 6, "name": "John", "age": 45} {"id": 7, "name": "Fiona", "age": 27} {"id": 8, "name": "George", "age": 29} {"id": 9, "name": "Hannah", "age": 24} {"id": 10, "name": "Isaac", "age": 31} {"id": 11, "name": "Julia", "age": 26}
Contoh Penggunaan:
Berikut ialah beberapa variasi penggunaan senarai untuk menapis pengguna.
NEWSCHEMA('Users', function(schema) { schema.action('list', { name: 'List users', query: 'page:Number, sort:String, name:String', params: 'id:String', action: async function($) { // Example: filter by name var users = await DATA.find('nosql/users').where('name', $.query.name).promise(); $.callback(users); } }); });
var users = await ACTION('Users/list').where('name', 'John').promise(); console.log(users);
2. Mendapatkan semula Pengguna melalui ID
Satu lagi ciri berguna ialah mendapatkan semula pengguna dengan ID mereka. Menggunakan kaedah .id() QueryBuilder menjadikan ini mudah:
var user = await DATA.find('nosql/users').first().promise(); console.log(user);
Contoh Penggunaan:
var builder = DATA.find('nosql/users'); builder.id($.params.id); // or builder.where('id', $.params.id); $.callback(await builder.promise());
3. Memasukkan Pengguna Baharu
Seterusnya, mari kita tentukan tindakan sisipan untuk menambah pengguna baharu pada pangkalan data.
var user = await ACTION('Users/list').params({ id: 5 }).promise(); console.log(user); // Retrieves user with id 5
Tindakan ini menambahkan pengguna pada pangkalan data/users.nosql. Begini cara anda boleh memanggil tindakan sisipan.
Contoh Penggunaan:
schema.action('insert', { name: 'Inserting new users', input: '*name:String, age:Number', output: 'success:Boolean', action: function($, model) { DATA.insert('nosql/users', model).callback(function(err) { if (err) { console.error(err); } else { $.success(true); } }); } });
1. Dapatkan Pengguna dengan Nama Yang Ditapis
// in `definitions/test.js` ON('ready', function() { var result = await ACTION('Users/insert', { name: 'Alice', age: 25 }).promise(); console.log(result); });
2. Dapatkan Pengguna melalui ID
async function getUsersByName() { var users = await ACTION('Users/list').query({ name: 'Hannah' }).promise(); console.log(users); } getUsersByName();
3. Masukkan Pengguna Baharu dan Dapatkan Senarai Kemas Kini
async function getUserByID() { var user = await ACTION('Users/list').params({ id: 4 }).promise(); console.log(user); } getUserByID();
Dalam bahagian pertama QueryBuilder in Action ini, kami merangkumi perkara penting: mencipta pangkalan data NoSQL asas, mentakrifkan tindakan skema dan menggunakan kaedah QueryBuilder untuk menyenaraikan, menapis, mendapatkan semula dan memasukkan pengguna. Kami meneroka contoh kod praktikal untuk setiap operasi untuk membantu anda memahami cara konsep ini berfungsi dalam senario dunia sebenar.
Dalam bahagian seterusnya, kami akan menyelami kaedah QueryBuilder yang lebih maju dan penapisan yang kompleks untuk memberi anda kit alat lengkap untuk mengurus data dengan cekap dalam Total.js.
Nantikan QueryBuilder dalam Tindakan Bahagian 2, di mana kami akan mendalami teknik pertanyaan lanjutan untuk mengecas aplikasi Total.js anda!
Atas ialah kandungan terperinci QueryBuilder dalam Tindakan Bahagian 1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!