Доступ к функции, объявленной в App.js в файле EJS с использованием Nodejs и Mongodb - PullRequest
1 голос
/ 22 марта 2019

У меня есть файл app.js, в котором я объявил такую ​​функцию:

function acceptReq(req, res) {
     db.getDB().collection(collection).findOneAndUpdate({
         _id: ObjectId("5c94f444dab6e423a488d2ae")
     }, {
         $set: {
             requested: false,
             requests: {
                 user: undefined,
                 time: undefined
             },
             Booked: true
         }
     }, {
         returnOriginal: false
     }, (err, result) = > {
         if (err)
             console.log(err);
         else {
             req.flash(
                 'success_msg',
                 'Request Accepted!'
             );
             res.redirect('/dashboard/requests')
         }
     });
 }

У меня также есть файл ejs, в котором у меня есть кнопка, которая при нажатии запускает эту функцию в app.js:

<button  onclick="acceptReq()" class="btn btn-success  btn-block">Accept</button>

Однако всякий раз, когда я нажимаю кнопку, файл не может определить acceptReq().

Как правильно объявить функцию для чтения ejs?

1 Ответ

0 голосов
/ 22 марта 2019

AFAIK вы не сможете.Если вы видите, что код acceptReq, скорее всего, является методом обработчика конечной точки API, поэтому вы, вероятно, можете определить конечную точку API и использовать ее в качестве обработчика и вызывать эту конечную точку, определив функцию в части javascript файла ejs и передав ей имя функции.по нажатию кнопки.

app.get('/update', function acceptReq(req, res) {
    db.getDB().collection(collection).findOneAndUpdate({
        _id: ObjectId("5c94f444dab6e423a488d2ae")
    }, {
        $set: {
            requested: false,
            requests: {
                user: undefined,
                time: undefined
            },
            Booked: true

        }
    }, {
        returnOriginal: false
    }, (err, result) => {
        if (err)
            console.log(err);
        else {
            req.flash(
                'success_msg',
                'Request Accepted!'
            );
            res.redirect('/dashboard/requests')
        }
    });
});
...