API在本地运行良好,但在Heroku上部署时会出现H18错误

时间:2020-07-29 22:15:04

标签: node.js heroku multer

我正在使用Nodejs构建API,所有端点工作正常。 图片上传端点在本地正确发送了一个错误(无效令牌),但是上传到Heroku时我得到了

2020-07-29T21:54:56.564155+00:00 heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/uploadImages" host=the-link-2.herokuapp.com request_id=f65939bb-bb18-428c-8aba-cb6869f06696 fwd="178.86.226.163" dyno=web.1 connect=30ms service=147ms status=503 bytes=277 protocol=https

因此,当令牌在本地无效时,我会正确收到错误,但实时API却无法提供503服务

这是图片上传文件

const express = require('express');
const router = express.Router();
const multer  = require('multer');
const languages = require("../localization/language.json");
const validate = require('../utils/validateJWT');


const storage = multer.diskStorage({
    destination: function(req, file, cb){
        cb(null, './uploads/')
    },
    filename: function(req, file, cb){
        cb(null, new Date().toISOString()+file.originalname)
    }
});
const uploadsFilter = (req, file, cb) => {
    if(file.mimetype ==='image/jpeg' ||file.mimetype ==='image/png' || file.mimetype ==='image/jpg'){
        cb(null, true);
    }else{
        cb(null, false)
    }
};


const upload = multer({ storage: storage, fileFilter: uploadsFilter }).single('images');
router.post("/uploadImages", async function uploadFile(req, res) {
    
    let token = req.headers['token'];
    let lang = req.headers['lang'];
    let language = lang=='en'? lang :'ar';
    console.log(lang)
    let user = await validate.vlidateJWT(token);
try {
   
    if(!user){
        return res.status(406).json({error : languages[language].invaliedToken});
    }
       
         upload(req, res,  (err)=> {
            console.log(req.file)
            

            if (!req.file) {
              return res.status(500).send({ error: languages[language].imgUploadError});
              
            }
            res.send(req.file);
        })}
        catch{

            return res.status(500).json({ error:languages[language].error500});
        }
   

});


  module.exports = router;



postman screenshot

至少有一种方法可以为错误503添加if语句以显示我想要显示的错误吗?

注意:图片上传正常,但身份验证无效。

0 个答案:

没有答案