从Atong中的节点读取mongoose中的数据

时间:2018-01-18 16:40:16

标签: javascript node.js mongoose atom-editor

我正在建立一个带有node和mongoose in atom的库的网页。我已经创建了一个登录表单,注册并添加了一本书#34;。现在在主页上我想看到所有书籍,我不知道要做到这一点。我知道它与双{{}}或三{{{}}}括号有关,但我不确定。我稍后将以更漂亮的形式提出,现在我只想看看我如何打印,例如标题。顺便说一句,我使用了车把视图引擎。

<h2 class="page-header">Cartile existente</h2>
<h4>In curand!</h4> // <- there I'm supposed to put the book titles.
<h2 class="page-header">Adauga o carte noua</h2>//this is the "add a book" 
{{#if errors}}
      {{#each errors}}
        <div class="alert alert-danger">{{msg}}</div>
      {{/each}}
{{/if}}
<form method="post" action="/booksImp/addbook">
   <div class="form-group">
    <label>Numar Inventar</label>
    <input type="text" class="form-control" placeholder="Numar curent" name="nrinv">
  </div>
  <div class="form-group">
    <label>Titlu</label>
    <input type="text" class="form-control" placeholder="Titlu" name="titlu">
  </div>
   <div class="form-group">
    <label>Autor</label>
    <input type="text" class="form-control" placeholder="Autor" name="autor">
  </div>
  <div class="form-group">
   <label>Editura</label>
   <input type="text" class="form-control" placeholder="Editura, Locul publicatiei" name="editura">
 </div>
  <div class="form-group">
    <label>An</label>
    <input type="text" class="form-control" placeholder="An publicatie" name="an">
  </div>
  <div class="form-group">
    <label>Pret</label>
    <input type="text" class="form-control" placeholder="Pret" name="pret">
  </div>
  <button type="submit" class="btn btn-success">Trimite</button>
</form>
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');

var BookSchema = mongoose.Schema({
    nrinv: {
        type: String,
        index: true
    },
    titlu: {
        type: String
    },
    autor: {
        type: String
    },
    editura: {
        type: String
    },
    an: {
        type: String
    },
    pret: {
        type: String
    }
});

var Book = module.exports = mongoose.model('bookImp', BookSchema);

module.exports.getBooks = (callback, limit) => {
    Book.find(callback).limit(limit);
}

module.exports.getBookById = (id, callback) => {
    Book.findById(id, callback);
}

module.exports.addBook = (book, callback) => {
    Book.create(book, callback);
}

module.exports.removeBook = (id, callback) => {
    var query = {
        _id: id
    };
    BookImp.remove(query, callback);
}
var express = require('express'); //this is the controller code =))))
var router = express.Router();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

var Book = require('../models/bookImp');

router.get('/addbook', ensureAuthenticated, function(req, res, next) {
    res.render('addbook');
});

router.post('/addbook', function(req, res, next) {
    var nrinv = req.body.nrinv;
    var titlu = req.body.titlu;
    var autor = req.body.autor;
    var editura = req.body.editura;
    var an = req.body.an;
    var pret = req.body.pret;

    //console.log(name);

    req.checkBody('nrinv', 'Introduceti numarul de inventar').notEmpty();
    req.checkBody('titlu', 'Introduceti titlul').notEmpty();
    req.checkBody('autor', 'Introduceti autorul').notEmpty();
    req.checkBody('editura', 'Introduceti editura si locul').notEmpty();
    req.checkBody('an', 'Introduceti anul').notEmpty();
    // req.checkBody('an', 'Introduceti anul').isnumber();
    req.checkBody('pret', 'Introduceti pretul').notEmpty();

    var errors = req.validationErrors();

    if (errors) {
        res.render('addbook', {
            errors: errors
        });
    } else {
        var newBook = new Book({
            nrinv: nrinv,
            titlu: titlu,
            autor: autor,
            editura: editura,
            an: an,
            pret: pret
        });

        Book.addBook(newBook, function(err, book) {
            if (err) throw err;
            console.log(book);
        });

        req.flash('success_msg', 'Ati adaugat o carte cu succes');

        res.redirect('/booksImp/addbook');
    }
});

router.post('/addbook',
    passport.authenticate('local', {
        successRedirect: '/',
        failureRedirect: '/booksImp/addbook',
        failureFlash: true
    }),
    function(req, res) {
        res.redirect('/');
    });

function ensureAuthenticated(req, res, next) {
    if (req.isAuthenticated()) {
        return next();
    } else {
        //req.flash('error_msg', 'Trebuie sa va logati');
        res.redirect('/users/login');
    }
}

module.exports = router;
var express = require('express');
var router = express.Router();

var Book = require('../models/bookImp');

router.get('/', ensureAuthenticated, function(req, res, next) {
    res.render('index');
});

router.get('/api/books', ensureAuthenticated, function(req, res) {
    Book.getBooks(function(err, books) {
        if (err) {
            throw err;
        }
        res.json(books);
    });
});

function ensureAuthenticated(req, res, next) {
    if (req.isAuthenticated()) {
        return next();
    } else {
        //req.flash('error_msg', 'Trebuie sa va logati');
        res.redirect('/users/login');
    }
}

module.exports = router;

0 个答案:

没有答案