PERINGATAN! Proyek ini digabungkan ke dalam Agendash utama. Repo git ini sudah tidak digunakan lagi sekarang.
Dasbor yang modern, aman, dan andal untuk Agenda dengan kemampuan pencarian dan penomoran halaman yang ditulis dalam vue.js
require(agendash)
menjadi require(agendash2)
Node.js versi 12 minimum diperlukan untuk ketergantungan @hapi/@hapi
(lihat #23)
Mungkin diperlukan untuk membuat indeks berikut untuk penyortiran yang lebih cepat (lihat #24)
db.agendaJobs.ensureIndex({
"nextRunAt" : -1,
"lastRunAt" : -1,
"lastFinishedAt" : -1
}, "agendash2")
Di Software On The Road kami telah menggunakan agenda dan agendash untuk hampir setiap proyek sejak tahun 2017, namun selalu ada batasannya. Dan karena masalah keamanan kritis yang kami temukan di middleware server, kami memutuskan untuk melakukan fork agendash dan menulis ulang dari awal. Pada awalnya kami mencoba hanya menambal kode yang ada tetapi ditulis di backbone.js, jadi akan lebih banyak usaha untuk mempelajarinya daripada hanya menggunakan vue.js untuk membuat ulang fitur yang ada. Bagaimanapun, ini hanyalah CRUD sederhana dengan penomoran halaman dan pencarian, tidak ada yang mewah.
npm install --save agendash2
Catatan : Agendash
memerlukan mongodb versi >2.6.0 untuk melakukan kueri agregat yang diperlukan. Ini adalah versi database mongo Anda, bukan versi paket node Anda! Untuk memeriksa versi database Anda, sambungkan ke mongo dan jalankan db.version()
.
Agendash2 menyediakan middleware Express yang dapat Anda gunakan di jalur tertentu, misalnya ini akan membuat Agendash2 tersedia di situs Anda di jalur /dash
. Catatan: Jangan mencoba memasang Agendash2 di tingkat root seperti app.use('/', Agendash(agenda))
.
var express = require ( 'express' ) ;
var app = express ( ) ;
// ... your other express middleware like body-parser
var Agenda = require ( 'agenda' ) ;
var Agendash = require ( 'agendash2' ) ;
var agenda = new Agenda ( { db : { address : 'mongodb://127.0.0.1/agendaDb' } } ) ;
// or provide your own mongo client:
// var agenda = new Agenda({mongo: myMongoClient})
app . use ( '/dash' , Agendash ( agenda ) ) ;
// ... your other routes
// ... start your server
Dengan memasang Agendash2 sebagai middleware pada jalur tertentu, Anda dapat memberikan autentikasi Anda sendiri untuk jalur tersebut. Misalnya jika Anda memiliki sesi yang diautentikasi menggunakan paspor, Anda dapat melindungi jalur dasbor seperti ini:
app . use ( '/dash' ,
function ( req , res , next ) {
if ( ! req . user || ! req . user . is_admin ) {
res . send ( 401 ) ;
} else {
next ( ) ;
}
} ,
Agendash ( agenda )
) ;
Middleware lainnya akan segera hadir di folder /lib/middlewares/
. Anda hanya perlu memperbarui baris terakhir untuk memerlukan middleware yang Anda perlukan:
app . use ( '/agendash' , Agendash ( agenda , {
middleware : 'koa'
} ) ) ;
Perhatikan bahwa jika Anda menggunakan middleware perlindungan CSRF seperti csurf
, Anda mungkin perlu mengonfigurasinya untuk rute Agendash.
Agendash hadir dengan aplikasi Express mandiri yang dapat Anda gunakan seperti ini:
./node_modules/.bin/agendash2 --db=mongodb://localhost/agendaDb --collection=agendaCollection --port=3001
atau seperti ini, untuk agendaJobs
pengumpulan defaultJobs dan port default 3000
:
./node_modules/.bin/agendash2 --db=mongodb://localhost/agendaDb
Jika Anda menggunakan npm >= 5.2, Anda dapat menggunakan npx:
npx agendash2 --db=mongodb://localhost/agendaDb --collection=agendaCollection --port=3001