首页 > 解决方案 > 如何将 json 拆分为多个阶段。快递API

问题描述

所以问题发生在我的 API 架构中,我想将它放入名为 items[] 的数组中。

在此处输入图像描述

如我们所见,这是一个在 express + mongodb 上编写的简单 API。但问题是如何将我的数据从 post 方法放入名为 items[] 的全局数组中。它应该看起来像:

在此处输入图像描述

所以代码是:

const express = require('express')
const MongoClient = require('mongodb').MongoClient
const ObjectId = require('mongodb').ObjectId
const app = express();
let db;
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)
       }
       res.send(artist)
   })
})





MongoClient.connect('***********', (err, client) => {

    if (err) {
        return console.log(err)
    }

    db = client.db('mongod');

    app.listen(port, () => {
        console.log(`API is listening on port ${port}...`)
    })
})

标签: javascriptmongodbexpress

解决方案


您可以轻松地执行此操作res.json(),并将响应作为 json 数据发送。

改变

res.send(docs.slice(page, count))

res.json({ items: docs.slice(page, count), status: "success" })

推荐阅读