我的文件夹结构如下:
-server
--index.js
--core
---controllers
----maincontroller.js
---app.js
---router.js
--public
---views
----pages
-----index.ejs
我有这样的app.js:
const express = require('express')
const path = require('path')
const routes = require('./router')
const app = express()
app.use('/', routes)
app.set('views', path.join(__dirname, '/../public/views'))
app.set('view engine', 'ejs')
module.exports = app
我将'views'文件夹设置为'core'文件夹中的一个文件夹,然后是/ public / views。
然后我通过在服务器文件夹中运行node index.js
来启动我的服务器。 index.js
文件如下所示:
const app = require('./core/app');
const http = require('http').Server(app)
console.log(app.get('views'));
http.listen(process.env.PORT || 3000, '0.0.0.0', function(){
console.log('listening on :3000')
})
但是,当我尝试获取index.ejs
时,我收到错误:
Error: Failed to lookup view "../views/pages/index.ejs" in views directory "/home/myUser/server/views"
如果我从my / core /文件夹运行node ../index.js
,则错误更改为:
Error: Failed to lookup view "../views/pages/index.ejs" in views directory "/home/myUser/server/core/views"
如果我从/ public /文件夹运行相同的命令,它可以工作。是什么给了什么?
我还要补充一点,console.log()
index.js
会记录正确的文件路径......