Вывод с базы данных в handlebars
пытаюсь сделать сайт с регистрацией и авторизацией, но еще не дойдя до самого сложного столкнулся с проблемой - при попытке сделать вывод данных пользователя происходит ошибка:
Access has been denied to resolve the property "mail" because it is not an "own property" of its parent.
Не могу понять как исправить, вот форма регистрации:
<form class="position-absolute top-50 start-50 translate-middle" action="/reg" method="post">
<h2>{{title}}</h2>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Your e-mail</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" name="mail">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Password</label>
<input type="password" class="form-control" id="exampleInputEmail1" name="password">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Your name</label>
<input type="text" class="form-control" id="exampleInputEmail1" name="name">
</div>
<button type="submit" class="btn btn-primary">{{button}}</button>
</form>
Роутер:
const {Router} = require('express');
const User = require('../models/user');
const router = Router();
router.get('/', (req, res)=>{
res.render('reg', {
title: 'Register',
button: 'Register',
name: 'Your name'
})
})
router.get('/log', (req, res)=>{
res.render('log',{
title: 'Login',
button:'Log-in'
})
})
router.get('/users', async (req, res)=>{
const user = await User.find({})
res.render('users',{
title:'Users',
isUser: false,
user
})
})
router.post('/reg', async (req,res)=>{
const person = new User({
name: req.body.name,
password: req.body.password,
mail: req.body.mail
})
await person.save()
})
module.exports = router
Модель пользователя:
const {Schema, model} = require('mongoose')
const schema = new Schema({
status: {
type: Boolean,
default: true
},
name: {
type: String,
required: true
},
mail: {
type: String,
required: true
},
password:{
type: String,
required: true
}
})
module.exports = model('user', schema)
index.js:
const express = require('express')
const mongoose = require('mongoose')
const expressHandlebars = require('express-handlebars')
const userRoutes = require('./routs/users')
const PORT = process.env.PORT || 3000
const app = express()
const hbs = expressHandlebars.create({
defaultLayout: 'main',
extname: 'hbs'
})
app.engine('hbs',hbs.engine)
app.set('view engine', 'hbs')
app.set('views','views')
app.use(express.urlencoded({extended:true}))
app.use(userRoutes)
async function start(){
try{
await mongoose.connect('link',{
useNewUrlParser:true,
useFindAndModify:false
})
app.listen(PORT, ()=>{
console.log("server has been started")
})
}
catch(e){
console.log(e)
}
}
start()
И я ведь вижу что в базе есть пользователь, но не могу понять как с ним работать насколько я знаю обращаться к его значениям нужно по ключу, но у меня почему-то не выходит