如何使用Express的res.send()发送函数返回结果?
解决Express中用res.send()发送函数返回结果的问题
你的代码里有两处需要修正的地方,调整后就能正常返回产品列表了:
修正后的完整代码
// 先确保已安装并导入依赖 const faker = require('faker'); const express = require('express'); const app = express(); function listarAll() { faker.locale = "en"; const productsFaker = []; for (let i = 0; i < 5; i++) { productsFaker.push({ title: faker.commerce.productName(), price: faker.commerce.price(), // 这里之前用错了faker方法,现在修正为生成价格 thumbnail: faker.image.business(), }); } return productsFaker; } app.get("/api/productos-test", (req, res) => { res.send(listarAll()); // 直接调用listarAll函数,不需要加productosFaker前缀 }); // 启动服务器示例 app.listen(3000, () => { console.log('服务器运行在 http://localhost:3000'); });
关键说明
res.send()可以直接接收数组、对象这类JavaScript数据结构,Express会自动把它们序列化为JSON格式返回给客户端- 你之前在路由里错误使用了
productosFaker.listarAll(),但listarAll是独立定义的函数,直接调用即可 - 注意faker方法的匹配:
faker.commerce.product()返回的是产品名称,生成价格应该用faker.commerce.price(),否则返回的"价格"会是一串产品名称字符串
内容的提问来源于stack exchange,提问作者Moebiuz
相关产品推荐
相关产品推荐

