从MongoDB获取数据并显示在前端
我刚开始学习NodeJS作为我的应用程序的后端,但这是我第一次使用服务器端技术。
我试图build立一个简单的应用程序,这是一个我想插入数据到数据库(mongodb),并获得数据显示在前端的forms。 我正在使用快速句柄。
数据被成功保存到数据库,但是当我试图从数据库中获取数据显示在前端没有任何反应。
有谁知道我的代码可能是错的?
谢谢!!
//代码从这里开始
var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var assert = require('assert'); var url = 'mongodb://felipe:teste@ds033125.mlab.com:33125/form'; mongoose.connect(url); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index'); });
//将数据插入数据库(MONGODB)
router.post('/insert', function(req, res, next) { var Schema = mongoose.Schema; var itemSchema = new Schema({ nome: String, sobrenome: String, nacionalidade: String, email: String }); var CreateItem = mongoose.model('CreateItem', itemSchema); var item = new CreateItem({ nome: req.body.getNome, sobrenome: req.body.getSobrenome, nacionalidade: req.body.getNacionalidade, email: req.body.getEmail }); item.save(function(err) { if (err) throw err; console.log(item.nome + ' was saved!'); }); res.redirect('/'); console.log(item.nome + ' ' + item.sobrenome + ' was saved!'); });
//从数据库中获取数据并显示在前端
router.get('/', function(req, res, next) { res.render('index'); }); router.get('/get-data', function(req, res, next) { var resultArray = []; mongoose.connect(url, function(err, db) { assert.equal(null, err); var cursor = db.collection('createitems').find(); cursor.forEach(function(err, doc) { assert.equal(null, err); resultArray.push(doc); }, function() { db.close; res.render('index', {items: resultArray}); }); }); res.redirect('/'); });
// HTML将显示数据的位置
{{# each items}} <tr> <div class="col-md-3"> <td class="data">{{ this.nome }}</td> </div> <div class="col-md-3"> <td class="data">{{ this.sobrenome }}</td> </div> <div class="col-md-3"> <td class="data">{{ this.nacionalidade }}</td> </div> <div class="col-md-3"> <td class="data">{{ this.email }}</td> </div> </tr> {{/each}}