You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 07:24:23