我对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)
app.set(name, value)
将设置名称分配给值,其中名称是应用设置表中的属性之一。
视图
类型:字符串或数组
应用程序视图的目录或目录数组。如果是数组,则按视图在数组中出现的顺序查找视图。
app.set('views', path.join(__dirname, 'views'));
这会将您的应用程序视图文件夹设置为如下所示:
/Users/adil/Project/myApp/views
当您实际使用该视图时,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', {});
- 在 express.js 中
app.get()
和app.set()
的方法不是我们在 OOP 中习惯使用的方法。当我们像java一样在OOP中使用app.get('key')
或app.set('key', 'value')
时,我们只想设置/获取对象的成员。 - 但是,在 express.js 中,
app.set()
用于设置其中一个应用程序设置。 请参阅: http://expressjs.com/en/4x/api.html#app.set 。这里使用的app.get()
和app.post()
方法是指节点.js服务器接收的路由和请求。例如:app.get()
是指GET
请求,app.post()
是指POST
请求
views
是一个配置变量,用于设置快速将从中获取模板的文件夹。 app.get('/admin')
也不同于app.get('variable')
。第一个是GET路由,它将侦听HTTP服务器,第二个只是express的环境变量。