首页 > 解决方案 > 为什么 Express 无法在 netlify lambda serverless 中找到 ejs

问题描述

我正在尝试使用带有 netlify 的无服务器 http 来部署项目。到目前为止,我已经成功部署,但是页面显示“内部服务器错误”,当我检查控制台时,它显示“找不到模块 ejs”。我曾尝试重新安装 ejs 并在全球范围内表达,并将“node_modules”文件夹移至更高级别,但仍然没有运气。

这是我的代码:

require('dotenv').config()

const express = require('express')
const app = express()
const port = 3000;
const bodyParser = require('body-parser')
const router = require('./routes')
const path = require('path')
const ejs = require('ejs');

const serverless = require('serverless-http');

app.use(express.static(path.join(__dirname, "/public")))
app.use(bodyParser.urlencoded({extended: true}))
app.use(bodyParser.json())
app.use('/.netlify/functions/index', router)

app.set('view engine', 'ejs')

module.exports.handler = serverless(app);

所以我把app.set('view engine', 'ejs')说它找不到ejs

但是,这确实适用于正常

节点索引.js

但我不知道为什么它在这里不起作用。

帮助将不胜感激,非常感谢您!!!

标签: node.jslambdaserverlessnetlify

解决方案


您忘记说视图文件夹存在的位置

这应该解决它

// view engine setup
app.set('views', path.join(__dirname, 'views')); \\ views being the name of the folder in the root dir
app.set('view engine', 'ejs');

推荐阅读