包详细信息

js_ssp

juaismar271MIT1.0.3

Datatable server side for JS

Datatable, server, side, javascript

自述文件

JS-SSP (JavaScript Server-Side Processing)

Version License Node.js PostgreSQL MySQL

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.