Express&node.js中的app.set('views',__ dirname +'/ views')

Kim*_*rab 7 node.js express

我对app.set()方法感到困惑.据我所知,app.set()是这样的

app.get('title');
// => undefined

app.set('title', 'My Site');
app.get('title');
// => "My Site"
Run Code Online (Sandbox Code Playgroud)

但是在教程中,制作'views'文件夹并像这样使用.

app.set('views', __dirname + '/views')
app.get('/') or app.get('/admin')
Run Code Online (Sandbox Code Playgroud)

不应该这样吗?

app.get(views)
Run Code Online (Sandbox Code Playgroud)

Adi*_*iii 12

app.set(name, value)
Run Code Online (Sandbox Code Playgroud)

将设置名称指定给value,其中name是应用程序设置表中的一个属性.

意见

类型:字符串或数组

应用程序视图的目录或目录数组.如果是数组,则按照它们在数组中出现的顺序查找视图.

app.set('views', path.join(__dirname, 'views')); 
Run Code Online (Sandbox Code Playgroud)

这会将您的应用视图文件夹设置为:

/用户/阿迪尔/项目/对myApp /意见

当您实际使用视图时,view名称将成为文件路径minus the root directory和文件扩展名.例如,如果您具有以下文件结构:

/views/
/views/index.hbs
/views/news/
/views/news/index.hbs
/views/news/article1.hbs
/views/news/article2.hbs
Run Code Online (Sandbox Code Playgroud)

您将按如下方式呈现视图:

res.render('index', {});  
res.render('news/index', {});  
res.render('news/article1', {});  
res.render('news/article2', {});
Run Code Online (Sandbox Code Playgroud)