Веб-api. Как хранить данные в массивах, расположенных в MongoDB Altlas, используя req.body?

#javascript #node.js #express #mongoose #postman

Вопрос:

Я пытаюсь создать серверную часть простого веб-приложения, используя express, nodejs и MongoDB Atlas. Проблема в том, что я не знаю, как извлечь данные из тела html-страницы и сохранить их в коллекции документов из Atlas. Я пытаюсь сделать это с помощью асинхронной функции, но я очень новичок в javascript.

Такова структура документа Атлас:

{

 "_id": {
        "$oid": "60f8a9ea7b6e2df245000648"
    },
    "arrayk": [null],
    "ck": [null],
    "nk": [null],
    "fk": [null],
    "Nk": [null],
    "Fk": [null],
    "nkTotal": {
        "$numberDouble": "0.0"
    },
    "kfTotal": {
        "$numberDouble": "0.0"
    }
}
 

Это структура схемы мангуста

 var mongoose = require('mongoose')
var Schema = mongoose.Schema
const arrType = [String]

var TableSchema = Schema({
    arrayk : arrType,
    ck : arrType,
    nk : arrType,
    fk : arrType,
    Nk : arrType,
    Fk : arrType,
    nkTotal : {
        type : null
    },
    fkTotal : {
        type : null
    }
});

  module.exports = mongoose.model('Table', TableSchema)
 

Я знаю, что это немного грязно, и именно здесь я застрял. Когда я тестирую это на почтальоне, это просто не работает, я использую массив ключей[0] и одно число в качестве значения.

 var Table = require('../models/table')

function home(req, res) {
    res.status(200).send({
        message: 'Hello World! from controller'
    });
}

function saveEntries(req, res) {
    var params = req.body 
    var table = new Table()

    for(let i = 0; i <table.arrayk.lenght; i  ) {
        if (params.arrayk[i]) {
            table.arrayk[i] = params
        }
    }
    res.status(200).send({
        message: table.arrayk
    });                    
}
module.exports ={
    home,
    saveEntries,
}
 

The next piece of code is the for the routes

 var express = require('express');

var TableController = require('../controllers/table');

var api = express.Router();

api.get('/home', TableController.home);

api.post('/create-new', TableController.saveEntries);

module.exports = api;