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

完成MongoDB连接后如何创建简单查询API获取集合全部记录

操作步骤

1. 修正现有数据库连接的逻辑缺陷

你当前的代码完成MongoDB连接后,没有把数据库实例赋值给提前声明的db变量,后续无法调用数据库操作接口,先修改app.listen中的连接逻辑:

app.listen(port,() => {
    MongoClient.connect(uri, { useNewUrlParser: true, useUnifiedTopology: true}, (err, database) => {
        if (err) {
            console.log("Error occurred connecting to MongoDB...")
            // 连接失败直接抛出错误终止进程,避免后续无意义报错
            throw err
        }
        // 赋值数据库实例,你在连接URI中已经指定了库名ecommerce,直接取对应实例即可
        db = database.db()
        // 修正原代码的笔误,把part改为port
        console.log(`Listening to port ${port}...`)
      });
})

2. 新增查询Books集合的API接口

在上述代码的下方新增接口逻辑即可:

// 自定义接口路径,这里用/api/books方便识别接口用途
app.get('/api/books', async (req, res) => {
  try {
    // 查询Books集合所有记录并转为数组格式
    const bookList = await db.collection('Books').find().toArray()
    // 返回200状态码和查询结果
    res.status(200).json(bookList)
  } catch (err) {
    // 捕获查询异常,返回错误信息
    res.status(500).json({ error: '图书数据查询失败', detail: err.message })
  }
})

3. 功能验证

服务重启成功后,直接在浏览器访问http://localhost:5000/api/books,或者用curl、postman等工具向该地址发送GET请求,就能拿到Books集合的所有记录。


注意事项

  • 注意MongoDB的集合名大小写敏感,请确认你的库中实际存在Books集合,不要出现拼写错误
  • 如果使用MongoDB Atlas云服务,需要先把你当前设备的公网IP加入Atlas的访问白名单,否则会被拦截无法正常查询数据
  • 生产环境不要把数据库账号密码等敏感信息硬编码在代码中,建议通过环境变量读取配置

内容的提问来源于stack exchange,提问作者lll

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:54:01