小编Jae*_* Oh的帖子

(Node JS + Express)如何渲染/ views / subfolder /中的文件?

这似乎是用Node JS + Express来解决的一个非常简单的问题,我已经做了一些研究来解决我的问题,但是结果没有出来,所以我在这里发布问题!

我要做的就是从路由中渲染.ejs文件。就像任何其他基本Node JS应用程序的文件结构一样,我的应用程序分为

/public、/views、/routes/、node_modules、app.js、package.json

在我的app.js中,我已经声明

app.set('views', path.join(__dirname, '/views'));
app.use('/', express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

在我的/ views内部,我有一个名为/ characters/ series的子文件夹, 所以它看起来像/views/characters/sample.ejs

现在在我的路线中,我已经有了这个('ejs'在app.js中被声明为视图引擎)

app.get('/series' , function(req,res){

    res.render('series/some');


});
Run Code Online (Sandbox Code Playgroud)

问题:在将some.ejs文件移到/ series之前

res.render('some'); 
Run Code Online (Sandbox Code Playgroud)

工作正常。但是将文件移到/ series后,我意识到Node JS无法渲染(嗯..找不到some.ejs文件)。我可以删除所有子文件夹并删除所有.ejs / views下的文件,但是会很乱。

PS。我尝试在** app.js尝试下传递多个目录。**

例如:

app.set('views', [path.join(__dirname, '/views'),path.join(__dirname, 
'/views/characters/'), path.join(__dirname, '/views/series/')]);
Run Code Online (Sandbox Code Playgroud)

档案结构:

           /myapp
                ->/node_modules
                ->/public
                    ->/css
                    ->/fonts
                    ->/images
                    ->/js
                    ->/template
                     ->/video
                ->/routes
                     ->characters.js …
Run Code Online (Sandbox Code Playgroud)

node.js express

4
推荐指数
1
解决办法
2953
查看次数

标签 统计

express ×1

node.js ×1