变量在javascript中导入字符串中间的串联

我创建了一个特殊的js文件,在其中我将映射将导入到redux-saga中的所有api端点:

export const API_BASE_URL = 'https://localhost:3000/api';
export const USERS = '/Users';

export default {
  users: {
    example: `${API_BASE_URL}${USERS}/example`,
    checkEmail: `${API_BASE_URL}${USERS}${HERE_I_NEED_MY_VARIABLE}/checkEmail`,
  },
};

但是我的端点看起来像这样:

import { api } from 'utils';

export function* checkEmail({ value }) {
  const requestURL = `https://localhost:3000/api/Users/${value}/checkEmail`;
  // I would like to do this: (pseudocode) const requestURL = `${api.users.checkEmail} + ${value}`
  ...
};

我该怎么做才能使它看起来更专业?最新的js是否允许您执行类似的操作?

评论
  • luyao
    luyao 回复

    您可以将网址存储到函数中,这样可以传递一些参数来填补空白。

    export const API_BASE_URL = 'https://localhost:3000/api';
    export const USERS = '/Users';
    
    export default {
      users: {
        example: () => `${API_BASE_URL}${USERS}/example`,
        checkEmail: (variable) => `${API_BASE_URL}${USERS}/${variable}/checkEmail`,
      },
    };
    

    然后您可以像调用其他任何函数一样调用它。

    import { api } from 'utils';
    
    export function* checkEmail({ value }) {
      const requestURL = `${api.users.checkEmail(value)}`
      ...
    };
    

    我还替换了字符串模板中的字符串连接,因为我不确定那不是您想要的。