我对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)
答案 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)
app.get()
和app.set()
不是我们习惯在OOP中使用的方法。当我们在像OOP这样的OOP中使用app.get('key')
或app.set('key', 'value')
时,我们只想设置/获取对象的成员。 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的环境变量。