javascript - 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 中,我知道我将 API 密钥发送到“/api”路径,以便我可以
fetch
在客户端检索此密钥。但是,如果我将 api 密钥发送到此路径,为什么我使用 GET 而不是 POST?
抱歉,这似乎是一个愚蠢的问题,但我很难理解 GET 方法。
谢谢!
解决方案
您没有向服务器发送任何 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})
})
服务器发送响应。
推荐阅读
- alexa - 即使用户的对话属于其他意图,如何触发 fallbackIntent
- android - 如何处理低于 28 的 android API 中的缺口(显示切口)?
- c# - DataTables:restrictionValues 和表名
- jquery - 如何访问在 .each() 方法中获取的变量并在 JQuery 脚本中使用它?
- javascript - 如何使用 URI 方案将 ms-office 文档保存在其他文档服务器中
- mysql - 无法在 Maria DB 中存储日文字符
- qt - 对 QML 分析器信息感到困惑?
- javascript - 为什么我的工具提示没有触发?(一般事件绑定功能)
- haskell - 无法将“可能”类型与“IO”匹配
- javascript - 将字段推送到对象数组的每个元素(MongoDB)