gpt4 book ai didi

javascript - 一个 POST 请求可以接受两个回调并且第一个可以将数据传递给第二个吗?

转载 作者:行者123 更新时间:2023-11-29 20:53:51 25 4
gpt4 key购买 nike

我有以下 .post() 请求:

const express = require('express');
const router = express.Router();
const search_controller = require('../controllers/searchController');
const result_controller = require('../controllers/resultController');

//Search Routes

router.post('/', search_controller.search_create_post);

module.exports = router;


我可以向它添加第二个回调,以便运行第一个回调,然后运行第二个回调:

router.post('/', search_controller.search_create_post, result_controller.result_create_post)

我是否需要在这些创建函数中的某处使用 next()?我还可以将数据从 search_create_post 回调传递到 result_create_post 回调吗?我想传入新创建的搜索对象的 ID。

我当前的 search_controller.search_create_post 函数是这样的:

exports.search_create_post = (req, res, next) => {
let newSearch = new Search({ search_text: req.body.search_text });

newSearch.save((err, savedSearch) => {
if (err) {
console.log(err);
} else {
res.send(savedSearch);
}
})
};

最佳答案

您也许可以这样使用(根据您的函数的编写方式):

// option A
router.post('/', search_controller.search_create_post, result_controller.result_create_post)

// options B
router.post('/', search_controller.search_create_post)
router.post('/', result_controller.result_create_post)

如果搜索需要将数据传递给结果,可以在search_create_post中设置req.search_data,然后在result_create_post中获取值。

看看https://expressjs.com/en/guide/using-middleware.html .此页面上有一些很好的示例。

app.get('/user/:id', function (req, res, next) {
console.log('ID:', req.params.id)
next()
}, function (req, res, next) {
res.send('User Info')
})

// handler for the /user/:id path, which prints the user ID
app.get('/user/:id', function (req, res, next) {
res.end(req.params.id)
})

根据您的以下评论:

你也许可以做到这一点......

exports.search_create_post = (req, res, next) => {
let newSearch = new Search({ search_text: req.body.search_text });
newSearch.save((err, savedSearch) => {
if (err) {
console.log(err);
} else {
req.searchData = savedSearch;
}
next();
})
};

关于javascript - 一个 POST 请求可以接受两个回调并且第一个可以将数据传递给第二个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com