JS-SSP (JavaScript Server-Side Processing)
A JavaScript library for implementing Server-Side Processing in DataTables with support for multiple databases.
🚀 Features
- ✨ PostgreSQL and MySQL support
- 🔍 Advanced search with individual and global filters
- 📊 Pagination and sorting
- 🛡️ SQL injection protection
- 🔄 Dynamic column typing
- 🎯 Easy integration with Express.js
📋 Requirements
- Node.js >= 14.0.0
- PostgreSQL >= 12.0 or MySQL >= 8.0
- Express.js (optional, for example)
🔧 Installation
npm install js-ssp
🎮 Basic Usage
const { SSP } = require('js-ssp');
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
// Database configuration
const config = {
dialect: 'postgres', // or 'mysql'
host: 'localhost',
user: 'user',
password: 'password',
database: 'my_database',
port: 5432 // 3306 for MySQL
};
// Column configuration
const columns = [
{ db: 'id', dt: 'id' },
{ db: 'name', dt: 'name' },
{ db: 'email', dt: 'email' }
];
// Create instance
const ssp = new SSP(config);
// Use in your endpoint
app.get('/api/data', async (req, res) => {
try {
const result = await ssp.Simple(req.query, 'my_table', columns);
res.json(result);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
📝 Complete Example
<table id="myTable" class="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
</table>
<script>
$(document).ready(function() {
$('#myTable').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '/api/data'
},
columns: [
{ data: 'id' },
{ data: 'name' },
{ data: 'email' }
]
});
});
</script>
🤝 Contributing
Contributions are welcome. We need:
- More adapters for MongoDB, SQLite...
- Proper RegEx implementation
- Tests
📄 License
This project is licensed under the MIT License.