gpt4 book ai didi

javascript - Node.js Mongoskin 集合迭代 > Jade

转载 作者:行者123 更新时间:2023-12-03 12:25:07 25 4
gpt4 key购买 nike

我试图迭代一个集合来创建一个目录并将其显示给用户槽jade,但每次运行时tableContent都是“无订单”,即使我认为我已经正确设置了数据库。

“listing.js”用于迭代数据库集合并将其发送到jade

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

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/db", {native_parser:true});

var iterateOrders = function() {
var tableContent = ''; //TableContent Array
db.collection('orders').find({}, function(err, result) {
result.each(function(err, order) {
tableContent += '<tr>';
tableContent += '<td>' + this.orderID + '</td>';
tableContent += '<td>' + this.receiverName + '</td>';
tableContent += '<td>' + this.receiverAddress + '</td>';
tableContent += '<td>' + this.receiverEmail + '</td>';
tableContent += '<td>' + this.order + '</td>';
tableContent += '</tr>';
});
});
if (tableContent === '') {tableContent = 'No Orders';}
return tableContent;
}

router.get('/', function(req, res) {
res.render('listing', {
title: 'Orderlist:',
table: iterateOrders() });
});

module.exports = router;

我已使用“mongo”手动写入数据库

db.orders.insert({'orderID'...en'})

我的 Jade 实现是

block content
table
thead
th #
th Name
th Addr
th Email
th Order
tbody= table

最佳答案

使用 return 关键字返回值在异步调用中不起作用。您需要在回调中将值传回。这是代码:

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

var mongo = require('mongoskin');
var db = mongo.db("mongodb://localhost:27017/db", {native_parser:true});

var iterateOrders = function(callback) {
var tableContent = ''; //TableContent Array
db.collection('orders').find({}).toArray(function(err, result) {
for (var i = 0, len = result.length; i < len; i++) {
tableContent += '<tr>';
tableContent += '<td>' + result[i].orderID + '</td>';
tableContent += '<td>' + result[i].receiverName + '</td>';
tableContent += '<td>' + result[i].receiverAddress + '</td>';
tableContent += '<td>' + result[i].receiverEmail + '</td>';
tableContent += '<td>' + result[i].order + '</td>';
tableContent += '</tr>';
}
if (tableContent === '') {tableContent = 'No Orders';}
callback(null, tableContent);
});
}

router.get('/', function(req, res) {
iterateOrders(function(err, tableContent) {
res.render('listing', {
title: 'Orderlist:',
table: tableContent
});
});
});

module.exports = router;

关于javascript - Node.js Mongoskin 集合迭代 > Jade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24249501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com