保存全局通知功能的最佳做法是什么?

时间:2018-02-06 10:53:25

标签: javascript node.js function express

我使用Node.js开发我的移动API,我想知道应该在哪里存储我的通知功能。我在我的代码中多次打电话给他们,我不知道我是否应该使用全局函数,类或其他任何东西。

以下是我在路线中多次使用的代码示例:

const notif = await new Notification({
    read: false,
    type: 'charging',
    content: 'text',
    _user: new ObjectID(id),
    createdAt: Date.now(),
    updatedAt: Date.now()
}).save();

if (notif) {
    const number = await Notification.find({
        _user: new ObjectID(existingUser.id),
        read: false
    }).count();

    const deviceToken = existingUser.device.token;

    const notification = new apn.Notification();

    notification.expiry = keys.apns.expiry;
    notification.badge = number;
    notification.sound = keys.apns.sound;
    notification.alert = 'Message';
    notification.topic = keys.apns.topic;

    apnProvider.send(notification, deviceToken).then(result => {
         console.log(result);
    });

    res.status(200);
    res.send({
        statusCode: 200,
        msg: 'ok'
    });
} else {
    res.status(400);
    res.send({
        statusCode: 400,
        msg: 'error'
    });
}

我是否应该将所有这些代码放在类,函数,全局函数中?

1 个答案:

答案 0 :(得分:0)

如何将此通知重用功能部署到utils模块中,并在需要时随时使用它?您可以使用module.exports = {}。

导出它
// /utils/file
const notification = (arguments) => {/* function details here */}

/* then export as notification  */

module.exports = { notification}

然后在其他地方使用它:

let {notification} = require('/path/to/utils')

您需要将经常使用的功能隔离到此模块中。 如果这有任何意义,或者您需要进一步澄清,请告诉我。