Express.JSpath问题与句柄

我的文件夹结构

事情是。 “应用程序”文件夹是我的节点的逻辑坐落在那里,你可以find视图文件夹,模板的句柄(快速句柄)。

在“config”文件夹中,有一个express.js文件,其中实际需要express软件包,并且还设置了app引擎和variables:

line 1: app.engine('handlebars', handlebars.engine); line 2: app.set('views', path.join(__dirname, '../app/views'); line 3: app.set('view engine', 'handlebars'); 

server.js文件需要config文件夹中的express.js文件,就是这样。

如果我把“views”文件夹放在根目录(第二行除外),一切正常,但是,如果我使用第2行和图片中显示的文件夹结构,我总是得到一个错误ENOENT:“没有这样的文件或目录..“

尝试通知“views”文件夹的正确path时,尝试在第2行上使用什么格式并不重要,错误消息始终表示无法find文件,显示的URL总是忽略“app”文件夹(它显示我尝试的每个path,但它使应用程序部分消失)。 不pipe我做什么,但节点似乎只是忽略该应用程序文件夹..就好像我无法访问它。

 Ex: 1) path.join(__dirname, "../app/views"); > ENOENT "C:\root\views\layouts\main.handlebars". 2) path.join(__dirname, "../xapp/views"); > Failed lookup view "C:\root\xapp\views" Note how the "app" portion of the first option disapears from the url !! 

我假设这是一个“path”问题,我不明白是怎么回事。 有人可以帮我解决吗?

如果有人知道我在哪里可以读到关于这个“path事件”背后的逻辑,我会很感激。 例如:当我只使用“__dirname”在第2行,我得到的错误消息是节点“无法查看视图”文件名“在视图目录:”path_string /configuration“…这是我很难解释(我是个新手),但是我认为你们比我更有经验,可以理解我在说什么。

在此先感谢您的帮助。

维托里奥

解决:问题是与快递车把包。 使用它的“创build”方法后,我应该指定layoutsDir:

 require('express-handlebars') .create({ layoutsDir:path.join(__dirname, '../whateverpath/views/layouts') , defaultLayout: 'main' }); 

做完之后,问题就解决了。

感谢那些试图帮助的人。

再见