我想在我们的 Sails 应用程序中使用 Ltijs 库 ( https://cvmcosta.me/ltijs )。将 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();
};
})(),
提前感谢您的帮助!