0

我在初始页面加载时无法引导数据。

快速总结:我有一个通过 mongoose 与 MongoDB 交互的快速服务器。所有这些部分都运行良好。服务器很好地为索引页面提供服务,该页面使用大量的 Backbone 脚本运行。索引页面运行良好,Backbone 能够通过 API 从服务器获取数据。所有这些都运作良好。

我正在尝试设置它,以便服务器快速调用 MongoDB 并在大约 50 个模型实例上引导。这是索引页面调用的路线:

var professorModel = require('../data/models/prof');

module.exports = function (app) {

  app.get('/', function (request, response) {

    professorModel.find().limit(50).exec(function (error, docs) {

    // Also tried: .find().lean().exec(function .... )
    // Also tried: docs = JSON.stringify(docs) ... (with a JSON.parse() on the other end). 
    // Also tried: docs.forEach(function (e, i, a) { newDocs.push(e.toJSON())})...

    response.render('index', { bootstrap : docs });

  });

};

在索引页面上,它只是<script> var bootstrap = {{{bootstrap}}}; </script>.

它每次都加载数据,但是浏览器很难解析它。我得到 ' parse error ILLEGAL '、unexpected tokens等。但重申一下:它必须是格式化的东西。

在 express 文档中,它注意到response.send()它发送的内容很聪明,并自动将对象编码为 json。这里的问题response.render()是不这样做吗?我觉得这里应该有一个简单的解决方案。

谢谢

山姆

4

1 回答 1

0

当它解决时,这是客户端的一个问题。

以前,我的代码是: var bootstrap = {{{bootstrap}}};.

这里的引导变量不是作为字符串接收的:它是作为对象接收的。将变量放在单引号之间解决了这个问题:

var bootstrap = '{{{bootstrap}}}';

字符串的长度仍然有一个神秘的限制:超过 150 个左右的对象,JSON 解析加载失败。否则:效果很好。

于 2013-08-18T15:59:08.060 回答