我无法在初始页面加载时引导数据。
快速摘要:我有一个快速服务器通过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>
。
每次加载数据,但是解析它的浏览器很难。我得到'解析错误ILLEGAL ',意外令牌等等。但重申一下:它必须是格式化的东西。
在快速文档中,它指出response.send()
对它发送的内容很聪明,并自动将对象编码为json。这里的问题是response.render()
没有这样做吗?我觉得这里应该有一个简单的解决方案。
由于
萨姆
答案 0 :(得分:0)
正如它解决的那样,这是客户端的一个问题。
以前,我的代码是:var bootstrap = {{{bootstrap}}};
。
这里的bootstrap变量不是作为字符串接收的:它是作为对象接收的。将变量放在单引号之间解决了这个问题:
var bootstrap = '{{{bootstrap}}}';
字符串的长度仍有一个神秘的限制:过去150个左右的对象,JSON解析失败了。否则:效果很好。