Как напечатать вывод моей базы данных с помощью nodejs и pug? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь вывести список имен из базы данных, используя NodeJS и PUG (бывший Jade). По какой-то причине он выводит только пустой список. Пожалуйста, проверьте код ниже.

Макет для формы ввода

//Students.pug
extends layout

block content
form(action='/students', method='POST')
    input(type='hidden', name='_csrf', value=_csrf)
    .form-group
        label(for='fullname') Name
        input.form-control(type='text',name='fullname', id='fullname', 
        placeholder='name', autofocus, autocomplete='name' ,required)
        button.btn.btn-success(type='submit')
            i.fas.fa-user-plus.fa-sm
            | Add

SCHEMA const mongoose = требовать ('mongoose');

    const studentSchema = new mongoose.Schema({
fullName: {
    type: String
}
});

const Student = mongoose.model('Student', studentSchema);


module.exports = Student;

Контроллер

const express = require('express');
var router = express.Router();
var bodyParser = require('body-parser')

const mongoose = require('mongoose');

const Student = require('../models/student');


router.get('/', (req, res) => {
res.render('students');

});

router.post('/',(req, res) => {
InsertRecord(req, res);

});

function InsertRecord(req, res){
var student = new Student();
student.fullName = req.body.fullname;
student.save((err, doc) => {
    if (!err)
        res.redirect('students/list');
    else {
        console.log(' Error during insertion: '+ err);
    }
});

 }

router.get('/list', (req, res) => {
Student.find((err, docs) => {
    if (!err) {
        res.render('list', {
            list:docs

        });
    }
    else {
        console.log('Error in retrieving students: '+ err);
    }
});
 });

 module.exports = router;

И страница / list, где должны быть перечислены данные расширяет макет

block content
 ul
 for fullName in list
    li= fullName.list

Все работает, форма localhost / студентов, передает данные в базу данных, единственная проблема, с которой я сталкиваюсь, это распечатка. Заранее спасибо за ваше время!

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

В шаблоне, где вы перебираете список и выводите имена, на которые ссылаетесь fullName.list, но я не вижу свойства .list в вашей модели mongoose.Это действительно должно быть fullName.fullName.Я бы предложил изменить fullName на student, чтобы он был более понятным.

0 голосов
/ 02 апреля 2019

После еще одной попытки и неудачи Вот решение: расширяет макет

block content
ul
for student in list
    li= student.fullName
...