0

我正在尝试在引导模板中显示我的 mongodb 数据。

api.js

var Software = require('../models/dbSoftware.js');
exports.show = (function(req, res) {
Software.find({Publisher: req.params.format}, function(error, softwares) {
    res.render('searchpage', { searchText: req.params.format, softwares: softwares}); 
})
});

软件架构:

var mongoose = require('mongoose');

var softwareSchema = new mongoose.Schema({
    SoftwareName: String
    , Size: String
    , Publisher: String
    , Product: String
    , Version: String
    , Language: String
    , License_Type: String
    , Description: String
    , License_Key: String
});
module.exports = mongoose.model('Software', softwareSchema);

搜索页面.ejs

<td><%= softwares.Product %></td>

这将返回未定义的值。任何软件。* 返回“未定义”。

当我将 searchpage.ejs 编辑为:

<td><%= softwares%></td>

输出是:

{ License_Key: 'computing', Description: 'Licensed', License_Type: 'English', Language: 'UNKNOWN', Product: 'Test Test', Publisher: 'Test', Size: '231.6MB', SoftwareName: 'Test.zip', _id: 5252c407d9b28d1e4c000001, __v: 0 } 

//哪个是对的

4

1 回答 1

0

使用 时.find()softwares对于Array所有成功的 ( error == null) 查询,无论找到的文档数量如何:

<%= softwares.length %>
<%= softwares[0].Product %>

如果您只想要一个文档,则需要使用.findOne()

Software.findOne({Publisher: req.params.format}, function(error, softwares) {
    // ...
});
<% if (softwares != null) { %>
    <%= softwares.Product %>
<% } %>

或者,您可以迭代 softwares

<% softwares.forEach(function (software) { %>
    <%= software.Product %>
<% }) %>
于 2013-10-14T18:56:47.703 回答