gpt4 book ai didi

javascript - 如何在 Node.js 中显示异步函数的结果

转载 作者:行者123 更新时间:2023-12-03 00:41:33 25 4
gpt4 key购买 nike

我是 Node 新手,我已经看过一些来自网络的教程。我的主要问题是如何显示我创建的路线的结果。好吧,我使用控制台获取了正确的数据,但是当我通过浏览器访问它时,它不显示 json 编码数据。

这是我的product.js:

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

router.get('/',(req,res)=>{
res.send(products());
})

async function products(){
// console.log(products)
return await getProducts();
}

function getProducts(){
return new Promise((resolve,reject) =>{
connection.query('SELECT brand,description from products limit 100', function (err, rows, fields) {
if (err) throw err
resolve(JSON.stringify(rows))
})
})
}

module.exports = router;

这是控制台日志结果:http://prntscr.com/llxgk2

这是 postman 的结果:http://prntscr.com/llxgy3

最佳答案

你需要消费这个 promise 。在您的情况下,可能使用 thencatch 处理程序:

router.get('/',(req,res)=>{
products()
.then(products => {
res.json(products);
})
.catch(error => {
// ...send error response...
});
});

注意我用过 res.json发送响应。您可能希望将 resolve(JSON.stringify(rows)) 更改为 resolve(rows) 并将如何处理行留给调用者。 (res.json 将为您进行字符串化。)

您还可以查看Koa ,它来自制作 Express 的同一个人,它为 async 函数作为路由提供了一流的支持。

关于javascript - 如何在 Node.js 中显示异步函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53443127/

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