UNPKG

js_ssp

Version:

Datatable server side for JS

114 lines (91 loc) 2.6 kB
# JS-SSP (JavaScript Server-Side Processing) [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://semver.org) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Node.js](https://img.shields.io/badge/node-%3E%3D14.0.0-brightgreen.svg)](https://nodejs.org) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-%3E%3D12.0-blue.svg)](https://www.postgresql.org) [![MySQL](https://img.shields.io/badge/MySQL-%3E%3D8.0-orange.svg)](https://www.mysql.com) 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 ```bash npm install js-ssp ``` ## 🎮 Basic Usage ```javascript 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 ```html <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.