我有一些非常简单的代码,我想下来理解这个概念:
controller.js:
router.get('/retrieve-sound-id', retrieveSoundID);
module.exports = router;
async function retrieveSoundID(req, res, next) {
const customer_id = req.body['customer-id'];
const file_name = req.body['file-name'];
fileService.retrieveSoundID(customer_id, file_name).then(function(val) {
res.send(val);
});
}
service.js:
const mysql = require('mysql');
module.exports = {
retrieveSoundID
};
function retrieveSoundID({ customer_id, file_name }) {
return new Promise((resolve, reject) => {
resolve(file_name)
});
}
邮差中的数据:
{
"customer-id": 1,
"file-name": "Bob"
}
当我进行API调用时,它成功返回,但在终端或邮递员中没有输出。我做错了什么?它似乎正在返回undefined。
更新
控制器:
router.get('/retrieve-sound-id', retrieveSoundID);
module.exports = router;
async function retrieveSoundID(req, res, next) {
fileService.retrieveSoundID(req.body).then(function(val) {
res.send(val);
});
}
服务:
function retrieveSoundID({ data }) {
return new Promise((resolve, reject) => {
console.log(data);
}
}
返回未定义的
您需要按照retrieveSoundID
:中的预期传递对象
fileService.retrieveSoundID({ customer_id, file_name }).then(function(val) {
res.send(val);
});
不传递2个参数,只传递一个具有customer_id
和file_name
属性的对象
更新:
您需要将数据对象传递给retrieveSoundID
函数,因为它需要一个数据对象:
fileService.retrieveSoundID({ data: req.body}).then(function(val) {
res.send(val);
});