Есть ли возможность передать определенную функцию в качестве параметра express.post()

#javascript #node.js #express

#javascript #node.js #выразить

Вопрос:

У меня есть этот код, и он отлично работает. Есть ли возможность передать определенную функцию в качестве параметра express.post() .

 const exs = require('express');
const exs_r = exs.Router();

router.post('/click', function(res, res) {
   //Do something
});
  

Я хочу спросить вас, есть ли какая-либо возможность, чтобы я мог вызвать определенную функцию там, как показано ниже:

 router.post('/click', def_myfunc(res, res));
<br />
function def_myfunc (res, res)
{
    // do something
}
  

или это звучит более разумно:

 router.post('/click', function(res, res) {
   def_myfunc (res, res);
});


function def_myfunc (res, res)
{
    // do something
}
  

Ответ №1:

Просто передайте ссылку на функцию в качестве параметра, а не вызывайте ее

Изменить:

 router.post('/click', def_myfunc(res, res));
  

Для

 router.post('/click', def_myfunc);
  

Ответ №2:

Просто

 router.post('/click', def_myfunc);

function def_myfunc (req, res)
{
// do something
}
  

Ответ №3:

Вы можете сделать что-то вроде этого.

 router.post('/click', def_myfunc);

function def_myfunc (res, res)
{
  // do something
}
  

Ответ №4:

Прежде всего, у вас опечатка в параметрах (res). Это не

 router.post('/click', function(res, res) {
  //Do something
});
  

Но (req, res)

 router.post('/click', function(req, res) {
  //Do something
});
  

При этом, как и другие опубликованные выше, просто передайте ссылку на функцию следующим образом:

 function def_myfunc(req, res) {
  // whatever
}
router.post('/click', def_myfunc);