express 里app.set有什么用
时间: 2024-03-22 11:38:06 浏览: 14
在Express中,您可以使用`app.set`方法来设置应用程序级别的变量和配置选项。这些变量和选项可以在应用程序中的任何位置使用。
以下是`app.set`的一些用途:
1. 设置应用程序的视图引擎。例如,如果您使用EJS作为视图引擎,则可以使用以下代码设置它:
```
app.set('view engine', 'ejs');
```
2. 设置应用程序的端口号。例如,您可以使用以下代码设置端口号为3000:
```
app.set('port', 3000);
```
3. 设置应用程序的其他配置选项。例如,您可以使用以下代码来设置应用程序的名称:
```
app.set('appName', 'My Express App');
```
您可以使用`app.get`方法来检索设置的值。例如,您可以使用以下代码检索应用程序的端口号:
```
const port = app.get('port');
```
总之,`app.set`方法可以让您在应用程序中设置和访问各种配置选项和变量。
相关问题
const express = require('express') const cors = require('cors') const path = require('path') const app = express() app.use(cors({ origin:'*' })) app.get('/', (req, res) => res.send('Hello World!')) app.use(express.static(path.join(__dirname, 'www'))) app.listen(3000, () => console.log('Example app listening on port 3000!'))在这个代码里改
可以将代码修改如下:
```javascript
const express = require('express');
const cors = require('cors');
const path = require('path');
const app = express();
app.use(cors({ origin:'*' }));
app.get('/', (req, res) => res.send('Hello World!'));
app.use(express.static(path.join(__dirname, 'www')));
app.get('/api/data', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.setHeader('Access-Control-Allow-Origin', '*');
const data = { message: '这是一个跨域请求的响应数据!' };
res.send(JSON.stringify(data));
});
app.listen(3000, () => console.log('Example app listening on port 3000!'));
```
这里新增了一个路由`/api/data`,用于返回一个包含`message`属性的JSON数据。同时在响应头中添加`Content-Type`和`Access-Control-Allow-Origin`,以便允许跨域请求访问该接口。
你可以将这段代码保存为`app.js`文件,然后在终端中执行`node app.js`命令来启动服务器,在浏览器中访问`http://localhost:3000/api/data`,就可以看到返回的JSON数据了。
在express的代码中,需要使用app.set( 'view engine', 'ejs' )来指定ejs为模板引擎。在express处理客户端的某个URL路由请求的回调函数function(req, res){}中,可以使用res对象的 方法,合并模板文件与数据。模板数据格式为 。
在使用Express中的ejs模板引擎时,可以使用res.render()方法来合并模板文件与数据。模板数据格式为一个包含键值对的JavaScript对象,其中键表示模板中使用的变量名,值表示变量的值。例如,如果我们有一个模板文件名为"index.ejs",其中包含一个变量名为"title",那么我们可以通过以下代码来合并模板文件与数据:
```
app.set('view engine', 'ejs');
app.get('/', function(req, res) {
var data = {
title: 'My Website'
};
res.render('index', data);
});
```
在上面的代码中,我们首先使用app.set()方法来指定ejs为模板引擎,然后在处理客户端请求的回调函数中,定义了一个包含"title"键的数据对象,并将它传递给res.render()方法。这个方法会自动查找名为"index.ejs"的模板文件,并将数据合并到模板中,最终生成HTML响应。