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

Express+MongoDB API如何将POST数据存入全局items数组并分阶段处理JSON

解决方案

实现需求只需要做两处核心修改,若需要服务启动时就同步数据库已有数据到数组可额外加初始化逻辑:

  1. 在全局作用域声明items数组
  2. POST请求写入数据库成功后,将新生成的艺术家数据推入该数组

修改后的完整代码

const express = require('express')
const MongoClient = require('mongodb').MongoClient
const ObjectId = require('mongodb').ObjectId
const app = express();
let db;
// 新增全局items数组
let items = []
const port = process.env.PORT || 3015
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.get('/', (req, res) => {
    res.send('Hey')
})

app.get('/artists', (req, res) => {
    let count = 10
    let page = 0
    req.query.count ? count = req.query.count : null
    req.query.page ? (page = req.query.page * count, count = page + 5) : null;
    db.collection('artists').find().toArray((err, docs) => {
        if (err) {
            console.log(err)
            return res.sendStatus(500)
        }
        res.send(docs.slice(page, count))
    })
})

app.post('/artists', (req, res) => {
    const artist = {
               name: req.body.name,
               photos: {
                   small: null,
                   large: null
               },
               status: null,
               followed: false
   }

   db.collection('artists').insertOne(artist, (err, result) => {
       if (err) {
           console.log(err)
           return res.sendStatus(500)
       }
       // 新增:将新数据存入全局items数组
       items.push(artist)
       res.send(artist)
   })
})

MongoClient.connect('***********', (err, client) => {
    if (err) {
        return console.log(err)
    }
    db = client.db('mongod');
    // 可选:启动时同步数据库已有数据到items数组
    db.collection('artists').find().toArray((err, docs) => {
        if (!err) items = docs
    })
    app.listen(port, () => {
        console.log(`API is listening on port ${port}...`)
    })
})

注意事项

  • 全局数组仅在服务运行期间有效,服务重启后数据会重置,初始化逻辑会重新从数据库拉取数据填充数组
  • 如果后续新增了修改、删除艺术家的接口,需要同步修改items数组内对应的数据,避免和数据库存储的数据不一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:04