express-admin-block
v0.4.2express-admin-block
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: ['[email protected]'], // 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'
}]
}))