首页 > 解决方案 > Express 上的 GET/POST 方法

问题描述

我正在使用 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);
        }
    }

好的,一切正常,但我的问题是:

抱歉,这似乎是一个愚蠢的问题,但我很难理解 GET 方法。

谢谢!

标签: javascriptexpresshttp

解决方案


您没有向服务器发送任何 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})
})

服务器发送响应。


推荐阅读