Загрузка массива строк из формы в MongoDBHtml

Программисты Html
Ответить
Гость
 Загрузка массива строк из формы в MongoDB

Сообщение Гость »


Я пытался загрузить массив строк из моей HTML-формы в свою базу данных (MongoDB).

Вот HTML-форма для добавления класса

Создать новый класс Создать новый класс Имя класса:
Зарегистрированные субъекты:
Отправить Ниже приведен маршрут класса

const express = require('express'); const router = express.Router(); const Тема = require('../models/course'); const Class = require('../models/class'); router.get('/', async (req, res) => { константные классы = ждут Class.find(); res.render('класс', {классы}) }); router.get('/add-class', async (req, res) => { константные предметы = ждут subject.find(); res.render('addClass', {субъекты}) }); router.post('/add-class', (req, res) => { const newClass = новый класс ({ имя: req.body.name, субъекты: req.body.subjects, }); Class.create(newClass).then((newcreated) => { req.flash('успех', 'Успешно'); res.redirect('/class/add-class'); }) .catch((ошибка) => { req.flash('ошибка', err.message); res.redirect('/class/add-class'); }) }); модуль.экспорт = маршрутизатор; Это модель класса

const mongoose = require('mongoose'); const classSchema = новый mongoose.Schema({ имя: Строка, subject: [String] // Предметы для этого класса }); const Class = mongoose.model('Class', classSchema); модуль.экспорт = Класс; Это предметная модель

const mongoose = require('mongoose'); const subjectSchema = новый mongoose.Schema({ имя: Строка, }); const Тема = mongoose.model('Субъект', subjectSchema); модуль.экспорт = Тема; Это тематический маршрут

const express = require('express'); const router = express.Router(); const Тема = require('../models/course') router.get('/', async (req, res) => { константные предметы = ждут subject.find(); res.render('курсы', {предметы}) }); router.get('/add-subject', async (req, res) => { res.render('addCourses') }); router.post('/add-subject', (req, res) => { const newSubject = новая тема ({ имя: req.body.name, }); subject.create(newSubject).then((newcreated) => { req.flash('успех', 'успешно'); res.redirect('/subject/add-subject'); }) .catch((ошибка) => { req.flash('ошибка', err.message); res.redirect('/subject/add-subject'); }) }) модуль.экспорт = маршрутизатор; Это результат, который я продолжаю получать.

{ "_идентификатор": { "$oid": "650c30b86c0f8320412f12ef" }, "name": "ССС 1", "предметы": [ "650b3c26e6e43eca75a4a9fa", "650b3cace6e43eca75a4a9fc", "650b3cbfe6e43eca75a4a9fe", "650b3cc6e6e43eca75a4aa00", "650b3cd5e6e43eca75a4aa02", "650b3cdde6e43eca75a4aa04", "650b3ce8e6e43eca75a4aa06", "650b3cefe6e43eca75a4aa08", "650b3d25e6e43eca75a4aa0c", "650b3d2ce6e43eca75a4aa0e", "650b3d68e6e43eca75a4aa18", "650b3d74e6e43eca75a4aa1a", "650b3dabe6e43eca75a4aa22" ], "__в": 0 } Я использовал другой маршрут, чтобы посмотреть, смогу ли я его обойти, я все равно встретил контрольно-пропускной пункт, я также пытался использовать атрибут .populate(), он все равно возвращал массив нулевых строк
>
router.get('/:id', async (req, res) => { пытаться { const classData = await Class.findById(req.params.id).populate('subjects'); // Перебираем темы и заменяем идентификаторы именами const subjectWithNames = classData.subjects.map(subject => субъект.имя); // Отправляем ответ res.json({ _id: classData._id, имя: classData.name, предметы: subjectWithNames, __v: данные класса.__v }); } поймать (ошибка) { console.error(ошибка); res.status(500).send('Внутренняя ошибка сервера'); } }); это был результат
{"_id":"650c30b86c0f8320412f12ef","name":"SSS 1","subjects":[null,null,null,null,null,null,null,null,null,null,null ,ноль,ноль],"__v":0}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»