簡體   English   中英

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

[英]app.set('views', __dirname + '/views') in Express & node.js

我對app.set()方法感到困惑。 據我所知,app.set()是這樣的

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

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

但是在教程中,制作'views'文件夾並像這樣使用。

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

不應該這樣嗎?

app.get(views)
app.set(name, value)

將設置名稱指定給value,其中name是應用程序設置表中的一個屬性

意見

類型: 字符串或數組

應用程序視圖的目錄或目錄數組。 如果是數組,則按照它們在數組中出現的順序查找視圖。

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. 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請求

views是一個配置變量,用於設置express將從中獲取模板的文件夾。 app.get('/admin')也與app.get('variable') 首先是GET路由,它會監聽HTTP Server,第二個是express的環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM