繁体   English   中英

从MongoDB获取数据并显示在前端

[英]GET data from MongoDB and display on the front end

我刚刚开始学习 NodeJS 以用作我的应用程序的后端,但这是我第一次使用服务器端技术。

我正在尝试构建一个简单的应用程序,它是一种表单,我想在其中将数据插入数据库(mongodb)并让数据显示在前端。 我正在使用快速车把。

数据已成功保存到数据库中,但是当我尝试从数据库中获取数据以在前端显示时没有任何反应。

有谁知道我的代码可能有什么问题?

谢谢!!

//代码从这里开始

 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!'); });

// 从 MongoDB 中获取数据并显示在前端

 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}}

不要使用这个:{{ this.nome }} 就这样使用它:{{ nome }}

参考这个例子,我创建了一个你可以访问的路由( http://localhost:3000/test )你需要在访问这个路由之前启动快速服务器,这个路由将使用 mongoose 从 mongo db 获取数据并将归还。 您可以使用邮递员尝试这条路线。

var express = require("express"),
    app = express(),
    bodyparser = require("body-parser"),
    mongoose = require("mongoose");

const router = express.Router();

app.use(bodyparser.json());

mongoose.connect('mongodb://localhost:27017/test');

const connection = mongoose.connection;

connection.once('open', () => {
    console.log('MongoDB connected successfully');
})

var schema = new mongoose.Schema({
    name: String,
    value: String
})

var data=mongoose.model("testdata", schema);

router.route('/test').get((req, res) => {
    data.find((err, (testdata);=> {
        if (err)
            console.log("Found some error" + err)
        else
            res.json(testdata);

    })
})


    app.use('/', router);



    app.listen(3000, function () {
        console.log('server started on port 3000');
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM