Куда поместить код, который запускается после успешного вызова API POST в узле? - PullRequest
0 голосов
/ 08 октября 2019

В узел / экспресс, куда я помещаю код, который выполняется сразу после успешного запроса. Я хотел бы отправить электронное письмо после звонка.

exports.postRequests = async (req, res) => {
    try {
        const {.... } = req.body;

        const post = await requests.save();
        return res.status(200)
            .json({
                status: 'ok',
                data: {
                    complete: post.complete,
                    id: post._id,
                },
            }); 
    } catch (err) {
        return errorResponse(res, 'Error occurred');
    }
};

//.then(emailSuccessMessage)....

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Вы можете использовать process.nextTick или setTimeout

exports.postRequests = async (req, res) => {
    try {
        const {.... } = req.body;

        const post = await requests.save();

        // already success here

        process.nextTick(() => {
            // emailSuccessMessage
        });

        return res.status(200)
            .json({
                status: 'ok',
                data: {
                    complete: post.complete,
                    id: post._id,
                },
            }); 
    } catch (err) {
        return errorResponse(res, 'Error occurred');
    }
};
0 голосов
/ 08 октября 2019

попытаться прослушать событие объекта запроса (конечное событие)


exports.postRequests Middleware =  (req,res,nx)=>{
 req.on('end',postRequests)
 nx()
}

exports.postRequests = async (req, res) => {
        const {.... } = req.body;
        const post = await requests.save();
        return res
            .status(200)
            .json({
                status: 'ok',
                data: {
                    complete: post.complete,
                    id: post._id
                   }
               }); 
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...