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

时间:2015-04-30 07:33:26

标签: node.js express

我对app.set()方法感到困惑。 据我所知,app.set()就像这样

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

app.set('title', 'My Site');
app.get('title');
// => "My Site"

但在教程中,请查看'观看'文件夹并使用这样的。

app.set('views', __dirname + '/views')
app.get('/') or app.get('/admin')

不应该是这样的吗?

app.get(views)

3 个答案:

答案 0 :(得分:10)

app.set(name, value)

将设置名称指定给value,其中name是app settings table.

中的一个属性

<强>视图

键入:字符串或数组

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

app.set('views', path.join(__dirname, 'views')); 

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

  

/用户/阿迪尔/项目/对myApp /视图

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

/views/
/views/index.hbs
/views/news/
/views/news/index.hbs
/views/news/article1.hbs
/views/news/article2.hbs

您可以按如下方式呈现视图:

res.render('index', {});  
res.render('news/index', {});  
res.render('news/article1', {});  
res.render('news/article2', {});

答案 1 :(得分:1)

  1. express.js中的方法app.get()app.set()不是我们习惯在OOP中使用的方法。当我们在像OOP这样的OOP中使用app.get('key')app.set('key', 'value')时,我们只想设置/获取对象的成员。
  2. 但是,在express.js中,app.set()用于设置其中一个应用程序设置。见:http://expressjs.com/en/4x/api.html#app.set。这里使用的app.get()app.post()方法是指node.js服务器收到的路由和请求。例如:app.get()引用GET请求,app.post()引用POST请求

答案 2 :(得分:0)

views是一个配置变量,用于设置express将从中获取模板的文件夹。 app.get('/admin')也与app.get('variable')不同。首先是GET路由,它将侦听HTTP Server,第二个是express的环境变量。