Nodejs控制器无法正常工作

时间:2015-12-07 12:51:51

标签: node.js

do {
    if let jsonData = data,
        let dict = try NSJSONSerialization.JSONObjectWithData(jsonData, options: []) as? NSDictionary,
        let recent = dict["recenttracks"] as? NSDictionary,
        let items = recent["track"] as? NSArray {
            for item in items {
                if let x = item["name"] as? String {
                    print(x)
                }
            }
    }
} catch let jsonError as NSError {
    print(jsonError)
}

以上控制器用于获取表格" ROOMLIST"下的房间列表。我需要了解细节。我需要在表格ROOMLIST中显示所有房间名称。

2 个答案:

答案 0 :(得分:1)

您应该使用mongodb的find方法从集合中获取文档。然后使用游标迭代文档。

var getRoomlist = function(db, callback) {
   var cursor =db.collection('roomlist').find( );
   cursor.each(function(err, doc) {
      assert.equal(err, null);
      if (doc != null) {
         return callback(false, doc);
      } else {
         return callback(true, null);
      }
   });
};

然后你可以使用你的路由/roomlist,在命中时调用函数getRoomlist并呈现文档。

router.get('/roomlist', function(req, res){
  programLogic(function(err, doc){
    if(err){
      console.log(err);
    }
    return res.send(doc);
  });
});

如果你还没有得到它,只需克隆它并运行它

var programLogic = function (cb){
  MongoClient.connect(url, function(err, db) {
    assert.equal(null, err);
    getRoomlist(db, function(err, doc) {
      if(err){
        console.log(err);
      }
      return cb(false, doc);
    });
  });
}// programLogic ends

var getRoomlist = function(db, callback) {
   var cursor =db.collection('roomlist').find( );
   cursor.each(function(err, doc) {
      assert.equal(err, null);
      if (doc != null) {
         return callback(false, doc);
      } else {
         return callback(true, null);
      }
   });
};

router.get('/roomlist', function(req, res){
  programLogic(function(err, doc){
    if(err){
      console.log(err);
    }
    return res.send(doc);
  });
});

答案 1 :(得分:0)

您使用哪个引擎进行视图渲染?基于错误消息,属性" roomname"已被解释为部分,并且无法在views目录中找到。