node.js - 为什么 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
但我不知道为什么它在这里不起作用。
帮助将不胜感激,非常感谢您!!!
解决方案
您忘记说视图文件夹存在的位置
这应该解决它
// 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');
推荐阅读
- ruby-on-rails - Facebook Oauth URL 被阻止
- mysql - 为什么有两种方式可以更新`Binary log`。(1. Master Binlog dump 2. Master Database)
- python - TypeError:无法转换 numpy.complex128 类型的 np.ndarray。唯一支持的类型是:float64、float 32
- mysql - Flutter Widgets中的Mysql查询结果
- php - PHP 无法从远程 TLS 主机检索证书属性
- hive - 配置图集后 hive 无法与 hue 一起使用
- scala - Scala RDD 键值对
- angular - 从 json 对象数组中提取一个/多个属性到另一个对象中
- java - 打印三角问题
- geopandas - 错误:“无法渲染缺少任何几何图形的对象:” Geopandas 没有缺少我的几何图形