Return URL 本地存储的图像 [Node JS API]

Return URL of locally stored image [Node JS API]

我正在创建一个接收 base64 字符串的 API,将其转换为图像 [label.jpeg],然后是图像的 return URL。现在我陷入了如何创建 URL 本地图像以便可以公开访问的问题。

下面是我的代码,目标是调用 API 时 'label.jpeg' 的 return URL 地址。

// Post base64 string
app.post('/post-base64', (req, res) => {

    // Captured img [base64 string]
    let strBase64 = req.body
    console.log(strBase64)

    // Convert base64 --> img.jpeg
    let buffer = Buffer.from(strBase64, 'base64')
    console.log(buffer)

    // Write base64 to file
    let writeStream = fs.createWriteStream('label.txt')
    writeStream.write(buffer, 'base64')


    writeStream.on('finish', () => {
        console.log('WROTE ALL!')
    })

    writeStream.end()

    // Save img as 'label.jpeg'
    fs.writeFileSync('label.jpeg', buffer)

    res.send({
        // TOD0: Return label.jpeg link
    })
})

谢谢。

您可以将上传的图像存储在您通过 staticallyexpress.static 提供的“public”文件夹中。例如:

// add this to your app.js
app.use(express.static('public'))

// store uploaded image in the public folder
app.post(..) => {
   // ... note that you should probably switch
   // to the non-blocking version e.g. fs.promises.writeFile(...)
   fs.writeFileSync(__dirname + '../public/name-of-img.jpeg', buffer)
})

Express 现在将负责提供文件,因此图像的 URL 将只是 http://yourhostname/name-of-img.jpeg