【发布时间】:2020-10-16 02:27:30
【问题描述】:
我有一个通过解析一些 JSON 创建的对象。 JSON 数据如下所示:
{
"id": "fan",
"name": "My super awesome fan",
"image": "Icon.png",
"details": {
"parts": [
{
"name": "base",
"image": "base.png"
},
{
"name": "blades",
"image": "blade.png"
}
],
"sale": {
"value": "prime",
"image": "PrimeDay.png"
}
}
}
image 属性中的值指向位于“public”目录下的文件,该目录使用 express.static 提供服务。例如,blade.png 文件位于:
public
--products
--fan (this is the same as the id property)
--blade.png
现在,当查询获取该对象的详细信息时,我想修改响应中发送的对象的图像属性,以便 JSON 响应如下所示:
{
"id": "fan",
"name": "My super awesome fan",
"image": "http://localhost:3000/products/fan/icon.png",
"details": {
"parts": [
{
"name": "base",
"image": "http://localhost:3000/products/fan/base.png"
},
{
"name": "blades",
"image": "http://localhost:3000/products/fan/blade.png"
}
],
"sale": {
"value": "prime",
"image": "http://localhost:3000/products/fan/PrimeDay.png"
}
}
}
我沿着使用 express 中间件的路径创建了一个指向 using 路径的 url
const url = req.protocol + '://' + req.get('host')
如何使用这个url 值来修改响应对象?
我不想将完整的本地主机路径硬编码到 JSON 中的图像,因为在部署时路径可能会改变。
【问题讨论】: