-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic.js
More file actions
103 lines (86 loc) · 2.97 KB
/
basic.js
File metadata and controls
103 lines (86 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/**
* Basic usage example for NexaClient
*/
const NexaClient = require('../src/index');
async function main() {
console.log('='.repeat(60));
console.log('NexaClient - Basic Usage Example');
console.log('='.repeat(60));
// Create client
const db = new NexaClient({
host: 'localhost',
port: 6970,
username: 'root',
password: 'nexadb123'
});
try {
// Connect
console.log('\n1️⃣ Connecting to NexaDB...');
await db.connect();
console.log('✅ Connected!');
// Create user
console.log('\n2️⃣ Creating user...');
const createResult = await db.create('users', {
name: 'Alice Johnson',
email: 'alice@example.com',
age: 28,
role: 'developer'
});
console.log('✅ User created:', createResult);
const userId = createResult.document_id;
// Get user
console.log('\n3️⃣ Getting user...');
const user = await db.get('users', userId);
console.log('✅ User retrieved:', user);
// Update user
console.log('\n4️⃣ Updating user...');
await db.update('users', userId, {
age: 29,
department: 'Engineering'
});
console.log('✅ User updated');
// Get updated user
const updatedUser = await db.get('users', userId);
console.log('📝 Updated user:', updatedUser);
// Create more users
console.log('\n5️⃣ Creating more users...');
await db.batchWrite('users', [
{ name: 'Bob Smith', email: 'bob@example.com', age: 35, role: 'manager' },
{ name: 'Carol White', email: 'carol@example.com', age: 42, role: 'director' },
{ name: 'David Brown', email: 'david@example.com', age: 31, role: 'developer' }
]);
console.log('✅ Batch insert complete');
// Query users
console.log('\n6️⃣ Querying users...');
const developers = await db.query('users', { role: 'developer' }, 10);
console.log(`✅ Found ${developers.length} developers:`, developers);
// Ping server
console.log('\n7️⃣ Pinging server...');
const pong = await db.ping();
console.log('✅ Ping successful:', pong);
// Delete user
console.log('\n8️⃣ Deleting user...');
await db.delete('users', userId);
console.log('✅ User deleted');
// Verify deletion
const deletedUser = await db.get('users', userId);
console.log('📝 User after deletion:', deletedUser);
console.log('\n' + '='.repeat(60));
console.log('✅ All operations completed successfully!');
console.log('='.repeat(60));
console.log('\nPerformance Benefits:');
console.log(' - 3-10x faster than HTTP/REST');
console.log(' - Binary protocol with MessagePack');
console.log(' - Persistent TCP connections');
console.log(' - Automatic reconnection');
} catch (err) {
console.error('\n❌ Error:', err.message);
console.error(err.stack);
} finally {
// Disconnect
console.log('\n9️⃣ Disconnecting...');
await db.disconnect();
console.log('✅ Disconnected\n');
}
}
main();