变量在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)}`
  ...
};

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

点赞
评论