首页 > 解决方案 > 多个 url 变量 async/await axios

问题描述

可能这是一个非常愚蠢的问题,我是 Node.js 和 javascript 的新手,所以如果问题没有得到正确解释或答案很简单,请原谅我......

我正在尝试通过 url 发送 2 个变量...当我只发送 1 个变量 (artist=${term}) 工作一切都很好,但我真的不知道如何通过 url (&artist) 发送 2 个变量=${term1}&专辑=${term2})

到目前为止,我一直在处理这段代码,其中 1 个变量运行良好......但我不知道如何在请求中添加第二个或第三个变量:

文件 1:“./services/albumInfo.js”

import { BRV_API } from '../../config';
import axios from 'axios';
import dotenv from 'dotenv';

const ALBUM_INFO = 'method=album.getinfo';
dotenv.config();

const doRequest = async (url) => {
    return await axios.get(`${BRV_API}/${url}&api_key=${process.env.API_KEY}&format=json`);
};

export const infoAlbum = async (term) => {
    return await doRequest(`?${ALBUM_INFO}&artist=${term}`);
};

文件 2:“./repositories/albumInfo.js”

import { infoAlbum } from '../repositories/albumInfo';
import status from 'http-status';

export const albumInfo = async (req, res, next) => {
    try {
        const { query } = req;
        
        const { data } = await infoAlbum(query.name);
        
        const response = data;

        res.status(status.OK).send(response);

    } catch (error) {

        next(error);

    }
    
};

我知道我的问题出在这部分代码中(我猜)

export const infoAlbum = async (term) => {
    return await doRequest(`?${ALBUM_INFO}&artist=${term1}&album=${term2}`);
};

我一直在寻找,我已经看到了一些解决方案,比如这个,但我只是不明白这些解决方案或如何应用到我的代码上(对不起,我对此很陌生)

有哪位好心人可以帮助这个新手?(如果也能解释解决方案的原因,理解,将是惊人的!!)

提前致谢!!

标签: javascriptnode.jsasynchronousasync-awaitaxios

解决方案


axios提供了可以自定义添加的参数如下

const your_url = process.env.URL
const infoAlbum = await axios.get(your_url,{
               params: { 
                    artist: term,
                    album: term2,
                    api_key: process.env.API_KEY,
                    format:'json'
               }
          })

console.log(infoAlbum.data.args)

注意:your_url 没有更多参数。


推荐阅读