如何解决nodejs 和 koajs 中间件错误使应用程序在部署到 heroku 后崩溃
我的中间件在本地运行良好,但在部署到 heroku 后,每当我的中间件尝试使用 ctx.body 抛出错误时,应用程序就会崩溃(我正在使用 koajs)
我从heroku得到的错误代码是H18 这是我的中间件代码:
import config from "../config/index";
import * as jwt from "jsonwebtoken";
import { User } from "../src/entity/User";
import { ReEr } from "../helpers/tools";
const Authenticate = async (ctx,next) => {
let payload: any;
const token = ctx.request.headers.token;
try {
payload = jwt.verify(token,config.jwtSecret)
} catch (error) {
return ReEr(ctx,error)
}
let user = await User.findOne({
where: { id: payload.id,verified: true },});
if (!user) return ReEr(ctx,{message:`User does not exist,please complete the registration process.`})
ctx.request.user = user;
await next();
};
export default Authenticate
这是处理错误的 ReEr 函数的代码:
const ReEr=async (ctx,error)=>{
ctx.status=400
ctx.body={
status:`Failed`,data:error
}
}
还有一件事,这个中间件末尾的函数上传一个文件,所以我需要发送一个主体作为表单数据,当我这样做时它会崩溃,但是当我发送一个原始的 JSON 主体时,中间件工作得很好。 我正在使用 multer 和 cloudinary,我没有写入 heroku 的磁盘存储,我通过发送正确的请求而没有错误,文件正常上传,以确保这不是问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。