【发布时间】:2021-12-07 08:13:42
【问题描述】:
我正在尝试将数据传递到我的 Node.js 后端,以便在对 API 的获取请求中使用它。
例如:
Server.js
const PORT = 8000
const axios = require('axios').default
const express = require('express')
const app = express()
const cors = require('cors')
app.use(cors())
require('dotenv').config()
app.use(express.json())
app.get('/convertedAmount', (req, res) => {
const contentBody = req.body
const options = {
method: 'GET',
url: 'https://currency-converter5.p.rapidapi.com/currency/convert',
params: {format: 'json', from: contentBody.primaryCurrency, to:
contentBody.secondaryCurrency, amount: contentBody.primaryCurrencyAmount},
headers: {
'x-rapidapi-host': process.env.RAPIDAPI_HOST,
'x-rapidapi-key': process.env.RAPIDAPI_KEY,
},
}
axios
.request(options)
.then((response) => {
res.json(response.data)
})
.catch((error) => {
console.error(error)
})
})
app.listen(PORT, () => console.log(`server running on PORT ${PORT}`))
问题是,我不知道如何将数据从前端传递到后端,而不是使其成为 POST 请求。但是,如果我向 rapidAPI url 发出 POST 请求,这将不起作用。所以后端需要保持不变。
我的问题是,我将如何为此编写前端部分?
在前端使用 POST 请求将数据与 req.body 一起发送,但我无法让数据显示在浏览器的 localhost:8000/convertedAmount 上。
谢谢
我的尝试是:
Frontend.js
...
axios.post('/convertedAmount', {
primaryCurrency: 'USD',
secondaryCurrency: 'GBP',
primaryCurrencyAmount: 1
})
.then((response) => {
console.log(response);
}, (error) => {
console.log(error);
})
...
【问题讨论】:
-
我想你正在寻找这个。 See