Have ideas to improve npm?Join in the discussion! »

express-admin-block

0.4.2 • Public • Published

express-admin-block

npm version

Still in alpha testing.

A simple Express (4.0+) middleware for rendering an admin page, directly connected to your MongoDB database.

Current user is checked with req.user

The goal is to be a drop-in admin panel for Express apps.

You can add custom fields and will soon be able to add custom charts.

Made with Bootstrap 4, DataTables and Chart.JS.

Features

  • Render a table for your data
  • Choose fields to display
  • View complete user data object
  • Chart for evolution over time
  • Broadcast: send emails to all users
  • Send email to select users
  • Edit select users

Who uses it?

Nucleus ElioPay Backery Litch.app

👋 Want to be listed there? Contact me.

Usage

Install the library

npm i express-admin-block

Include it in your app like this:

db represents an object of Mongoose schemas.

 
app.use('/admin', require('express-admin-block')({
    adminEmails: ['webmaster@website.com'], // User needs to be logged in 
    data: [{
        name: 'Users',
        type: 'mongoose',
        mongo: db.User,
        toShow: ['email', 'registered', 'plan'],
        dateField: 'registered'
    }, {
        name: 'Apps',
        type: 'mongoose',
        mongo: db.TrackedApp,
        toShow: ['name', 'created', { // Can either be strings (properties of your documents) or objects that include a 'render' **async** function
            name: 'Parent user':
            render: async (app) => {
                let user = await db.User.findById(app.parentUser).exec()
                return user.email
            }
        }],
        dateField: 'created'
    }]
}))
 

Keywords

none

Install

npm i express-admin-block

DownloadsWeekly Downloads

6

Version

0.4.2

License

MIT

Unpacked Size

13.1 kB

Total Files

7

Last publish

Collaborators

  • avatar