如何在不同路由nodejs的router.post请求中使用router.get请求

How to use a router.get request in a router.post request of a differents routes nodejs

我在 Nodejs 应用程序上工作,当两个请求不在同一路由中时,我想在 POST 请求中获得 GET 请求的结果。

我给你详细解释一下:

我的 libellecsv.js route 中有以下代码:

const express = require('express');
const router = express.Router();
const Libellecsv = require('../../models/Libellecsv');

//@route   GET api/libellecsv
//@desc    Return all the libelle of the csv present in the database
//@access  Public
router.get('/', function (req, res, next) {
  Libellecsv.find(function (err, libelle) {
    if (err) {
      res.send(err);
    }
    res.json(libelle);
  });
});

module.exports = router;

我想在 students.js routes 的 post 请求中使用此 get 请求的结果:

//@route   POST api/students
//@desc    Fill the database with the json information
//@access  Public
router.post('/', async (req, res) => {

// HERE I WANT TO PUT THE RESULT OF THE LIBELLECSV GET REQUEST IN A VARIABLE

}

我该怎么做?这当然是一个基本问题,但我找不到解决方案。

感谢您的帮助。

你当然可以在你的 post-handler 中重用 Libellecsv 存储库,尽管我将它包装在一个 promise 中以避免有太多的回调链(这也需要一些当然是正确的错误处理):

//@route   POST api/students
//@desc    Fill the database with the json information
//@access  Public
router.post('/', async(req, res) => {
    const libelle = await new Promise((resolve, reject) => {
            Libellecsv.find(function (err, libelle) {
                if (err) {
                    return reject(err);
                }
                resolve(libelle);
            });
        });
    // do something with libelle here
    console.log(libelle)

}