คำเตือน! โครงการนี้ถูกรวมเข้ากับวาระหลัก repo git นี้เลิกใช้แล้ว
แดชบอร์ดที่ทันสมัย ปลอดภัย และเชื่อถือได้สำหรับ Agenda พร้อมความสามารถในการค้นหาและการแบ่งหน้าที่เขียนใน vue.js
require(agendash)
เป็น require(agendash2)
จำเป็นต้องมี Node.js เวอร์ชัน 12 ขั้นต่ำสำหรับการพึ่งพา @hapi/@hapi
(ดู #23)
อาจจำเป็นต้องสร้างดัชนีต่อไปนี้เพื่อการเรียงลำดับที่รวดเร็วยิ่งขึ้น (ดู #24)
db.agendaJobs.ensureIndex({
"nextRunAt" : -1,
"lastRunAt" : -1,
"lastFinishedAt" : -1
}, "agendash2")
ที่ Software On The Road เราใช้วาระการประชุมและวาระการประชุมสำหรับเกือบทุกโครงการตั้งแต่ปี 2017 แต่ก็มีข้อจำกัดอยู่เสมอ และเนื่องจากปัญหาด้านความปลอดภัยที่สำคัญที่เราพบในมิดเดิลแวร์ของเซิร์ฟเวอร์ เราจึงตัดสินใจแยกวาระการประชุมและเขียนใหม่ตั้งแต่ต้น ในตอนแรก เราพยายามที่จะแพตช์โค้ดที่มีอยู่แต่มันถูกเขียนใน backbone.js ดังนั้นจึงต้องใช้ความพยายามมากขึ้นในการเรียนรู้โดยใช้ vue.js เพื่อสร้างฟีเจอร์ที่มีอยู่ขึ้นมาใหม่ ท้ายที่สุดแล้ว นี่เป็นเพียง CRUD ธรรมดาที่มีการแบ่งหน้าและการค้นหา ไม่มีอะไรพิเศษ
npm install --save agendash2
หมายเหตุ : Agendash
ต้องใช้เวอร์ชัน mongodb >2.6.0 เพื่อดำเนินการค้นหารวมที่จำเป็น นี่คือเวอร์ชันฐานข้อมูล mongo ของคุณ ไม่ใช่เวอร์ชันแพ็คเกจโหนดของคุณ! หากต้องการตรวจสอบเวอร์ชันฐานข้อมูลของคุณ ให้เชื่อมต่อกับ mongo และเรียกใช้ db.version()
Agendash2 มีมิดเดิลแวร์ Express ที่คุณสามารถใช้ได้ในเส้นทางที่ระบุ ตัวอย่างเช่น ซึ่งจะทำให้ Agendash2 พร้อมใช้งานบนไซต์ของคุณที่เส้นทาง /dash
หมายเหตุ: อย่าพยายามเมานต์ Agendash2 ที่ระดับรูทเช่น 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
เมื่อติดตั้ง Agendash2 เป็นมิดเดิลแวร์บนพาธเฉพาะ คุณอาจจัดเตรียมการรับรองความถูกต้องของคุณเองสำหรับพาธนั้น ตัวอย่างเช่น หากคุณมีเซสชันการตรวจสอบสิทธิ์โดยใช้พาสปอร์ต คุณสามารถป้องกันเส้นทางแดชบอร์ดได้ดังนี้:
app . use ( '/dash' ,
function ( req , res , next ) {
if ( ! req . user || ! req . user . is_admin ) {
res . send ( 401 ) ;
} else {
next ( ) ;
}
} ,
Agendash ( agenda )
) ;
มิดเดิลแวร์อื่นๆ จะมาในโฟลเดอร์ /lib/middlewares/
เร็วๆ นี้ คุณจะต้องอัปเดตบรรทัดสุดท้ายเพื่อต้องการมิดเดิลแวร์ที่คุณต้องการ:
app . use ( '/agendash' , Agendash ( agenda , {
middleware : 'koa'
} ) ) ;
โปรดทราบว่าหากคุณใช้มิดเดิลแวร์ป้องกัน CSRF เช่น csurf
คุณอาจต้องกำหนดค่าปิดสำหรับเส้นทาง Agendash
Agendash มาพร้อมกับแอป Express แบบสแตนด์อโลนที่คุณสามารถใช้ได้ดังนี้:
./node_modules/.bin/agendash2 --db=mongodb://localhost/agendaDb --collection=agendaCollection --port=3001
หรือเช่นนี้สำหรับวาระการรวบรวมเริ่มต้น agendaJobs
และพอร์ตเริ่มต้น 3000
:
./node_modules/.bin/agendash2 --db=mongodb://localhost/agendaDb
หากคุณใช้ npm >= 5.2 คุณสามารถใช้ npx:
npx agendash2 --db=mongodb://localhost/agendaDb --collection=agendaCollection --port=3001