我刚开始学习NodeJS作为我的应用程序的后端,但这是我第一次使用服务器端技术。
我正在尝试构建一个简单的应用程序,这是一个我希望将数据插入数据库(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('/');
});
//从MONGODB获取数据并在前端显示
{{# 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}}
//将显示数据的HTML
{{1}}
答案 0 :(得分:1)
请勿使用此:{{this.nome}} 就像这样使用它:{{nome}}
答案 1 :(得分:0)
以本示例为参考,我创建了一条路由,可以在(http://localhost:3000/test)处访问该路由,您需要先启动Express Server,然后才能访问此路由。该路由将使用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');
});