Javascript 在Express上获取/发布方法

Javascript 在Express上获取/发布方法,javascript,express,http,Javascript,Express,Http,我正在使用express配置服务器 我的问题与项目本身无关,因为它运行得很好 我只是有一个小小的疑问,为什么我必须使用GET,而对我来说,使用POST更有意义 因此,简而言之,我在服务器端配置API密钥,并在客户端获取它,以便使用它 这是服务器端的代码段: const apiKey = process.env.API_KEY; console.log(`Your API key is ${apiKey}`); const dataObject ={}; app.get('/api', (req

我正在使用express配置服务器

我的问题与项目本身无关,因为它运行得很好

我只是有一个小小的疑问,为什么我必须使用GET,而对我来说,使用POST更有意义

因此,简而言之,我在服务器端配置API密钥,并在客户端获取它,以便使用它

这是服务器端的代码段:

const apiKey = process.env.API_KEY;
console.log(`Your API key is ${apiKey}`);
const dataObject ={};

app.get('/api', (req,res) => {
    res.send({key: apiKey})
})

app.get('/all', sendData = (req,res) => {
    res.send(dataObject)
})

app.post('/addText', (req,res)  => {
    let newEntry = {
        agreement = req.body.agreement,
        subjectivity = req.body.subjectivity
    }

    dataObject = newEntry;
    res.send(dataObject);
} )
然后在客户端,我通过“/api”路径获取:

const getApiKey = async () => {
        // Getting API key from server
        const request = await fetch('/api');
        try {
            const data = await request.json();
            console.log(data);
            return data;
        }catch(error) {
            console.log('ERROR', error);
        }
    }
好的,一切都好,但我的问题是:

  • 在服务器端的第一次访问中,我知道我正在将API密钥发送到“/API”路径,以便在客户端通过
    fetch
    检索此密钥。但是,如果我将api密钥发送到此路径,为什么要使用GET而不是POST
抱歉,如果这是一个愚蠢的问题,但我很难理解GET方法


谢谢

此代码从服务器返回API密钥。它不会将其从客户端发送到服务器

app.get('/api', (req,res) => {
    res.send({key: apiKey})
}


函数正在构造服务器返回给客户端的响应。

此代码从服务器返回API密钥。它不会将其从客户端发送到服务器

app.get('/api', (req,res) => {
    res.send({key: apiKey})
}


函数正在构造服务器返回给客户端的响应。

您没有向服务器发送任何API密钥。服务器将API密钥作为响应发送给客户端。客户端使用GET请求从/API获取API密钥。方法(GET、POST、PUT、DELETE等)的名称是从客户机的角度来看的

然后在客户端,我在“/api”路径上获取:“否。首先,客户端用

const request = await fetch('/api');
try {
    const data = await request.json();
    console.log(data);
    return data;
}catch(error) {
    console.log('ERROR', error);
}
这将在中触发回调

app.get('/api', (req,res) => {
    res.send({key: apiKey})
})

服务器发送响应。

您没有向服务器发送任何API密钥。服务器将API密钥作为响应发送给客户端。客户端使用GET请求从/API获取API密钥。方法(GET、POST、PUT、DELETE等)的名称是从客户机的角度来看的

然后在客户端,我在“/api”路径上获取:“否。首先,客户端用

const request = await fetch('/api');
try {
    const data = await request.json();
    console.log(data);
    return data;
}catch(error) {
    console.log('ERROR', error);
}
这将在中触发回调

app.get('/api', (req,res) => {
    res.send({key: apiKey})
})

服务器发送响应。

通常,当客户端必须从服务器读取一些数据时,您使用
GET
方法,在这种情况下,您需要读取服务器中定义的API_密钥
GET
没有正文,但每个请求都可以通过在查询字符串中传递参数来进行参数化。

另一方面,当您必须在服务器上更新或创建实体时,即
POST
(或
PUT
)开始生效。在这里,您可以在请求正文中传递数据。

通常,当客户端必须从服务器读取一些数据时,您可以使用
GET
方法,在这种情况下,您需要读取服务器中定义的API_密钥
GET
没有正文,但每个请求都可以通过在查询字符串中传递参数来进行参数化。

另一方面,当您必须在服务器上更新或创建实体时,即
POST
(或
PUT
)开始生效。在这里,您可以在请求正文中传递数据。

非常感谢Thomas!我得到了它。我不知道透视部分。非常感谢托马斯!我得到了它。我不知道透视部分。