NodeJS并发请求响应混合

时间:2020-10-26 13:51:36

标签: node.js express nodes

发出并发请求时,响应数据混合在一起。

路由控制器将依赖项注入到用例函数中。

路由控制器

const fromAdaptReq = require('../../utils/adapt-req');
...other imports

router.get('/v1/getList', async (req, res, next) => {
    try {
        const request = {
                      locals: res.locals,
                      lang: res.locals.lang
                     };

        const userCase = new fromUsersCase
            .user
            .user
            .getList({
                createError: customError.CustomError,
                translate,
                request: request,
                db: fromDB.database,
            });
        const result = await userCase.execute();
        return res.status(200).json({
            msg: result.msg,
            data: result.data,
            error: false
        });
    } catch (error) {
        console.log(error)
        next(error);
    }
}

搜索列表功能用于调用查询功能

搜索列表功能

exports.getList = function ({ createError, translate, request, db }) {
    return Object.freeze({
        execute: async () => {
            try {
                const userId = parseInt(request.locals.userId);

                const searchList= await fromServices
                                        .getPhonebook(request.lang, createError, translate, { userId, db });

                return {
                    msg: 'List',
                    data: { list: searchList}
                }
            } catch (error) {
                if (error instanceof createError) {
                    throw error;
                }
                console.log(error);
                throw new Error(error.message);
            }
        }
    })
}

1 个答案:

答案 0 :(得分:0)

我发现我正在使用全局变量将用户ID存储在fromService函数中,该函数根据用户ID执行查询以生成列表。

更改阻止的范围已修复错误 谢谢