【发布时间】:2016-08-30 13:31:12
【问题描述】:
首先,上下文。我正在使用agenda 在我的sails.js 应用程序中安排任务。在 orm 和其他一些钩子完成之后,议程开始于一个钩子。到目前为止一切都很好。然后我发现了agendash,这是一个用于管理议程任务的 Web 界面。而且我无法让它与sails.js一起使用。
问题出在下面。这就是应该如何使用议程(来自文档):
var express = require('express');
var app = express();
// ... your other express middleware like body-parser
var Agenda = require('agenda');
var Agendash = require('agendash');
var agenda = new Agenda({mongo: 'mongodb://127.0.0.1/agendaDb'});
app.use('/agendash', Agendash(agenda));
我找不到我应该把它放在哪里。正如我所说,议程在挂钩中初始化,然后我将其保存为sails.agenda。所以我唯一真正需要做的就是
app.use('/agendash', require('agendash')(sails.agenda))
但我不确定如何在routes.js 之外添加这样的新路由(我不能在该文件中引用sails,它是未定义的),然后用一些策略保护这条路由(我希望议程仅对管理员可用)。
如果我做对了,这条线应该只运行一次,所以我不能把它放在config.http 作为中间件。但是否则sails.js的路由器会覆盖路由(至少如果我把sails.hooks.http.app.use('/agendash', require('agendash')(agenda))放在一个钩子里,路由不会暴露)。
那么我应该怎么做才能让它发挥作用呢?
【问题讨论】: