返回

初入职场“坑”连连,小问题导致需求延期,自定义上传图片要素都要考虑

前端

进入职场,也许每天的任务都是各种修改bug。俗话说,只有了解bug,才能避免bug,才能成长,才能变强。现在来回顾实习阶段遇到的第一个坑,一个小bug,导致需求延迟了两个小时。

前因后果

在实习的前几天,我负责一个小功能:自定义上传图片。需求很简单:实现一个上传图片的按钮,将图片上传到服务器,并且可以预览上传的图片。

走进误区

我按照惯例,先写了一个简单的HTML框架,然后在页面中添加了一个文件上传的 input 标签。然后,我用elementUI的Upload组件来实现图片上传的功能。

<template>
  <el-upload
    action="http://localhost:3000/upload"
    on-success="handleSuccess"
    on-error="handleError"
  >
    <el-button type="primary">上传图片</el-button>
  </el-upload>
</template>

<script>
export default {
  methods: {
    handleSuccess(response) {
      console.log(response);
    },
    handleError(error) {
      console.log(error);
    },
  },
};
</script>

写完代码后,我兴致勃勃地运行了项目,却发现图片无法上传。我查看了控制台,发现有一个错误:

Error: Failed to load resource: the server responded with a status of 404 (Not Found)

我尝试了很多方法,比如修改上传的地址,修改文件上传的类型,但都无济于事。

恍然大悟

当我正准备放弃的时候,我突然想到,我还没有在服务器端写上传图片的代码。我赶紧在服务器端写了一个简单的接口,用来接收上传的图片。

app.post('/upload', (req, res) => {
  const file = req.files.file;
  file.mv(`./uploads/${file.name}`, (err) => {
    if (err) {
      res.status(500).send('上传失败');
    } else {
      res.status(200).send('上传成功');
    }
  });
});

写完代码后,我再次运行项目,图片终于上传成功了。

总结教训

这次经历让我明白,在开发一个功能的时候,一定要考虑到所有的细节。比如,在实现一个上传图片的功能时,不仅要考虑前端的代码,还要考虑后端的代码。只有把所有的细节都考虑到了,才能避免出现 bug,才能保证项目顺利进行。

在实习阶段,遇到各种各样的问题是难免的。重要的是要勇于面对问题,积极寻找解决方案,不断学习和积累经验。只有这样,才能快速成长,成为一名合格的开发人员。