Javascript 使用API从客户端保存图像

Javascript 使用API从客户端保存图像,javascript,image,api,express,Javascript,Image,Api,Express,我有一个网站,我正在重写。该网站的博客区域有一个特色图片,我正试图找出保存图片的最佳方法 我遵循了一个使用mongoose中的file.mv()函数的教程(我认为是mongoose?也许是express?)——无论哪种方式,它都会将图像移动到我的公用文件夹中的一个文件夹中 它在dev服务器上工作,但当我推到Heroku时,它就不工作了。我确信这与文件位置有关 我不知道我是不是用传统的方式做这件事。。。但基本上我让博客作者上传图片并写文章。然后我将帖子内容保存到我的bongo数据库中。文件位置保存

我有一个网站,我正在重写。该网站的博客区域有一个特色图片,我正试图找出保存图片的最佳方法

我遵循了一个使用mongoose中的file.mv()函数的教程(我认为是mongoose?也许是express?)——无论哪种方式,它都会将图像移动到我的公用文件夹中的一个文件夹中

它在dev服务器上工作,但当我推到Heroku时,它就不工作了。我确信这与文件位置有关

我不知道我是不是用传统的方式做这件事。。。但基本上我让博客作者上传图片并写文章。然后我将帖子内容保存到我的bongo数据库中。文件位置保存在特征图像下,而不是整个图片保存在特征图像下。这样我就不必将图像上传到数据库

欢迎任何意见!谢谢!

这是密码

    //save images
blogRouter.post('/upload', (req, res) => {
    if(req.files === null ){
        return res.status(400).json({ msg: 'No file uploaded'})
    }

    const file = req.files.file;
    const fileName = file.name.replace(/\s+/g, '');

    file.mv(`${__dirname}/../client/public/BlogImgs/${fileName}`, err => {
        if(err){
            console.error(err)
            return res.status(500).send(err);
        }

        res.json({ fileName: fileName, filePath: `/BlogImgs/${fileName}`});
    })
})

//Post New Blog
blogRouter.post('/', (req, res) => {
    let newBlog = new blog({
        title: req.body.title,
        content: req.body.content,
        author: req.body.author,
        comments: req.body.comments,
        featuredImg: req.body.featuredImg,
        summary: req.body.summary
    })
    newBlog.save().then(item => res.json(item))
})

您不需要将其存储在数据库中,只需将其名称存储在服务器上的文件夹中,即可用于图像上载。

您不需要将其存储在数据库中,只需将其名称存储在服务器上的文件夹中,即可用于图像上载