在子目录之后添加子目录

3
使用JavaScript URL,我如何在现有URL实例的子目录上添加额外的路径?
目标是构建一个URL以生成这个:
https://api.foo.com/crm/v3/objects/companies/12345

我可以通过连接字符串成功地构建URL之外的子目录。
const objectType = 'companies'
let subDirectory = `/crm/v3/objects/${objectType}`;
// '/crm/v3/objects/companies'

const objectId = '12345';
subDirectory = `${subDirectory}/${objectId}`;
// '/crm/v3/objects/companies/12345'

const urlRequest = new URL(subDirectory, 'https://api.foo.com');
// 'https://api.foo.com/crm/v3/objects/companies/12345'

然而,如果我尝试基于URL实例进行构建,它会修改初始的子目录。
const objectType = 'companies';
const subDirectory = `/crm/v3/objects/${objectType}`;
let urlRequest = new URL(subDirectory, 'https://api.foo.com');
// https://api.foo.com/crm/v3/objects/companies

const objectId = '12345';
urlRequest = new URL(objectId, urlRequest.toString());
// 'https://api.foo.com/crm/v3/objects/12345'
// Replaces '.../companies' with '.../12345'
// Not appends to existing subDirectory
// '.../companies/12345'

有什么建议吗?

1
我觉得这与TypeScript没有任何关系。这是一个JavaScript的事情。 - Camilo
1
我不认为这与TypeScript有任何关系。这是JavaScript的事情。 - Camilo
1
我不认为这与TypeScript有任何关系。这是一个JavaScript的问题。 - undefined
1个回答

2
在子目录的末尾添加/可以得到你想要的结果。
const objectType = 'companies';
const subDirectory = `/crm/v3/objects/${objectType}/`;
let urlRequest = new URL(subDirectory, 'https://api.foo.com');

const objectId = '12345';
urlRequest = new URL(objectId, urlRequest.toString());
// https://api.foo.com/crm/v3/objects/companies/12345

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接