Я хочу использовать библиотеку Ltijs (https://cvmcosta.me/ltijs) в нашем приложении Sails. Способ развертывания Ltijs как части другого экспресс-сервера таков (из документации Ltijs):
const app = express()
lti.setup('EXAMPLEKEY', { url: 'mongodb://localhost/database' })
// Start LTI provider in serverless mode
await lti.deploy({ serverless: true })
// Mount Ltijs express app into preexisting express app with /lti prefix
app.use('/lti', lti.app)
Способ поместить промежуточное ПО в Sails примерно такой (без app.use(...)!):
// config/http.js
const lti = require('ltijs').Provider;
lti.setup(
'8swieleivBef',
{url: 'mongodb://localhost:27017/mysailsapp'},
);
lti.deploy({serverless: true});
module.exports.http = {
middleware: {
order: [
'cookieParser',
'session',
'bodyParser',
'ltiExpressAdapter', //<-------- my middleware adapter -----------------
'compress',
'poweredBy',
'router',
'www',
'favicon',
],
ltiExpressAdapter: lti.app, //<-------- my middleware adapter -----------------
.
.
.
Последнее работает, но работает хорошо, потому что теперь каждый запрос перехватывается Ltijs, и приложение больше не работает. У меня вопрос: как перенести путь '/lti' из app.use('/lti', lti.app) в игру с парусами?
Я пробовал много таких вещей, которые не работали:
ltiExpressAdapter: (function () {
return async function (req, res, next) {
if (req.path.match(/^\/lti.*$/)) {
return lti.app;
}
return next();
};
})(),
Заранее спасибо за помощь!