У меня есть экспресс-приложение, которое я хочу портировать на AWS Lambda.Он использует руль в качестве промежуточного программного обеспечения.Я начал следовать этому руководству: https://dev.to/brightdevs/how-to-convert-an-express-app-to-aws-lambda--44gc
Разница между этим и моим кодом заключается в руле.Когда я пытаюсь получить / например, я получаю:
Error: /var/task/views/index.hbs: The partial include could not be found
at Object.invokePartial (/var/task/node_modules/handlebars/dist/cjs/handlebars/runtime.js:266:11)
at Object.invokePartialWrapper [as invokePartial] (/var/task/node_modules/handlebars/dist/cjs/handlebars/runtime.js:68:39)
at Object.eval [as main] (eval at createFunctionContext (/var/task/node_modules/handlebars/dist/cjs/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:8:28)
at main (/var/task/node_modules/handlebars/dist/cjs/handlebars/runtime.js:173:32)
at ret (/var/task/node_modules/handlebars/dist/cjs/handlebars/runtime.js:176:12)
at ret (/var/task/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:525:21)
at /var/task/node_modules/hbs/lib/hbs.js:63:19
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
Моя структура папок выглядит следующим образом:
/server.js
/views/index.hbs
/views/partials/include.hbs
Соответствующие части server.js:
const express = require('express'),
hbs = require('hbs'),
app = express();
hbs.registerPartials(__dirname +'/views/partials');
app.set('view-engine', 'hbs');
app.get("/", (req, res) => {
res.render('index.hbs', {});
});
const PORT = process.env.PORT || 8080;
const isInLambda = !!process.env.LAMBDA_TASK_ROOT;
if (isInLambda) {
const serverlessExpress = require('aws-serverless-express');
const server = serverlessExpress.createServer(app);
exports.main = (event, context) => serverlessExpress.proxy(server, event, context)
} else {
app.listen(PORT, ()=>{
console.log('Server is up, listening on port ' + PORT);
});
}
Я ожидаю, что index.hbs будет отображаться так же, как если бы я запускал код локально с помощью узла. \ Server.js.Вместо этого я получил не найденную ошибку, которую вставил выше.Любые подсказки приветствуются.