Javascript 把手中数组和对象的迭代

Javascript 把手中数组和对象的迭代,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,Schema.js var ItemSchema = mongoose.Schema({ username: { type: String, index: true }, path: { type: String }, originalname: { type: String } }); var Item = module.exports = mongoose.model('Item',ItemSchema, 'iteminfo'); route.js route

Schema.js

var ItemSchema = mongoose.Schema({
username: {
  type: String,
  index: true
},
 path: {
   type: String
 },
 originalname: {
   type: String
 }
});

var Item = module.exports = mongoose.model('Item',ItemSchema, 'iteminfo');
route.js

router.get('/', ensureAuthenticated, function(req, res){
  Item.find({},function(err, docs){
                res.render('welcome', {docs:docs});
        });
});
index.hbs


[此处的数据列表!!!]
我在routes中的代码正确吗?如何在
index.js
中显示所有数据?请帮忙。我是
node.js
mongoDB
的新手。谢谢:)

在Mongoshell中,当我点击db.users.find()时,它有两个集合。我希望所需的输出在索引中是这样的

username=“username1”
path=“path1”
originalname=“originalname1”
username=“username2”
path=“path2”
originalname=“originalname2”

可能吗?比如做一些<代码> Furace<代码>概念。

让我们考虑在模型中有2个字段。名称和_id。您需要将其呈现给视图

这里需要“ejs”模块,这是一个模板框架,用于在html中呈现数据

Server.js

var express = require('express');

var app = express();
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'ejs');
将所有视图保留在“父文件夹/视图”中

routes.js

router.get('/', ensureAuthenticated, function(req, res){
Item.find({},function(err, docs){
            res.render('welcome', {docs:docs});  // here the welcome should be the file name of the html you need to render
    });
});
欢迎光临

<table>
  <% for(var i=0; i < docs.length; i++) { %>
   <tr>
    <td><%= docs[i].id %></td>
    <td><%= docs[i].name %></td>
   </tr>
  <% } %>
</table>

下面是语法

您的示例输出将如下所示

<table>
 <tr>
   <td>1</td>
   <td>bob</td>
 </tr>
 <tr>
   <td>2</td>
   <td>john</td>
 </tr>
 <tr>
   <td>3</td>
   <td>jake</td>
 </tr>

1.
上下快速移动
2.
厕所
3.
满意的
在.hbs文件中

您可以使用内置的each helper遍历列表。在块内部,您可以使用它来引用正在迭代的元素

医生来了


这是我的示例,在本例中,我正在迭代一个body表

{{#each campaign}}
  <tr>
   <td>{{this}}</td>
   <td>{{this._id.campaign}}</td>
   <td>{{this.quantity}}</td>
  </tr>
{{/each}}
{{{#每个活动}
{{this}}
{{这个。{u id.campaign}}
{{this.quantity}}
{{/每个}}

您使用的模板引擎是我用过的把手。这是index.handlebar而不是index.js。对不起,我的错。我在我的index.handlebar中尝试了{{docs}}。数据显示,但它是数组形式。我想要像php中的foreach一样的东西。@LawrenceRicafortBacus上面的代码是为
编写的。ejs
你说你在使用把手,@p0k8。他提到他是新手,所以不管模板框架如何,他只需要一些解决方案。如果在一个大型项目中,把手的实施已经完成,他会清楚地提到它。@Prasanthchinja如果这个问题没有确切的解决方案,那么你可以这样做,找到替代方法。请使用手柄更新您的答案,这是针对社区,而不仅仅是针对OPdata未定义?另外,它会破坏以前的模板。为什么?有没有使用把手的解决方案?
<ul class="people_list">
  {{#each docs}} // iterating over array, and #each below loops the properties of elements {}
    <li> {{#each this}} </li>  
       {{this}} // references the property values
    {{/each}}
  {{/each}}
</ul>
{{#each campaign}}
  <tr>
   <td>{{this}}</td>
   <td>{{this._id.campaign}}</td>
   <td>{{this.quantity}}</td>
  </tr>
{{/each}}