【发布时间】:2021-06-02 01:13:06
【问题描述】:
我正在开发一个 Node JS 项目,其中我的应用具有以下文件夹结构:
src
│ index.js # Entry point for application
└───config # Application environment variables and secrets
└───controllers # Express controllers for routes, respond to client requests, call services
└───interfaces # Interfaces for Database models
└───middlewares # Operations that check or maniuplate request prior to controller utilizing
└───models # Database models
└───routes # Express routes that define API structure
└───services # Encapsulates all business logic
每当我尝试调用服务文件中存在的方法时,问题是它在进入它并进入 catch 之后会跳过该行。以下是我的控制器和服务的代码:
admin.controller.ts
import * as dotenv from 'dotenv';
import { Request, Response } from 'express';
import ERROR_TYPES from '../config/error';
import db from '../models';
import { AdminService } from '../services/admin.service';
export class AdminController {
adminService = new AdminService();
constructor() {
dotenv.config();
}
async updateAdminUser(req: Request, res: Response) {
try {
console.log('a')
let x = await this.adminService.updateAdminUserImpl(req.body, req.params.id); // By debugging I saw it's coming to this line and then going inside the catch block and not giving any error message
console.log(x);
res.status(ERROR_TYPES.UPDATED_SUCESSFULLY.code).send({ success: true, data: '', message: ERROR_TYPES.UPDATED_SUCESSFULLY.message, status: ERROR_TYPES.UPDATED_SUCESSFULLY.status });
} catch(error) {
res.status(ERROR_TYPES.SERVER_ERROR.code).send({ success: false, data: '', message: error, status: ERROR_TYPES.SERVER_ERROR.status });
}
}
}
admin.service.ts
import * as dotenv from 'dotenv';
import { Request } from 'express';
import { AdminUserI } from '../interfaces/admin_user.interface';
import db from '../models';
export class AdminService {
constructor() {
dotenv.config();
}
private Validator(data: AdminUserI): boolean {
console.log(data);
return false;
}
async updateAdminUserImpl(req: any, id: string) {
console.log(req);
if(this.Validator(req)) {
try {
await db.AdminUser.update(req, { where: { id: id } });
return { success: true, data: '', message: 'xyz' };
} catch(error) {
return { success: true, data: '', message: error };
}
} else {
return { success: true, data: '', message: 'def' };
}
}
}
我不明白它从哪里停止。我关注了一些博客,例如this one,但仍然无法弄清楚。
【问题讨论】:
-
stackoverflow.com/questions/30611830/… 希望这对你有帮助。
-
不,这没有多大帮助??
标签: javascript node.js typescript express