Javascript 把手、JS和节点
我试图从MongoDB获取服务器发送的数据。定期获取:Javascript 把手、JS和节点,javascript,node.js,mongodb,handlebars.js,Javascript,Node.js,Mongodb,Handlebars.js,我试图从MongoDB获取服务器发送的数据。定期获取: .get('/test', function(req, res){ mongo.collection('collection').find({ _id:req.user._id.toString() }).toArray( function(err, doc){ res.render('partials/map', { docs : doc }); } });
.get('/test', function(req, res){
mongo.collection('collection').find({ _id:req.user._id.toString()
}).toArray( function(err, doc){
res.render('partials/map',
{ docs : doc });
}
});
});
即,向客户端发送一个包含文档的数组。然后我想在客户端操作数据,因此我在客户端的javascript中执行以下操作:
<script>
var docs = '{{docs}}';
console.log(typeof(docs));
console.log(docs);
var obj = new Object(docs);
console.log(obj);
var arr = new Array(docs);
console.log(arr);
console.log(JSON.stringify(docs));
</script>
我如何操作数据?我知道这是一个包含三个文档的数组,但只要尝试使用docs[0]就会在[object object](即“[”)中给出第一个字符。此外,JSON.parse(docs)只会返回错误,因为docs不知何故已经是一个对象。在服务器上对对象进行字符串化,然后在客户端访问它
//server
res.render('partials/map', {docs: JSON.stringify(doc)})
//client
var docs = {docs}
不起作用,返回:“JSON.parse位置2处的意外标记&在JSON中”,或者我可以在客户端上以某种方式处理引号吗?好的,使用:console.log(JSON.parse(docs.replace(/“/g,””));它工作得很好。谢谢@Josan!很抱歉,您实际上不必解析它。没有JSON.parse,它应该可以工作。我将更新答案
//server
res.render('partials/map', {docs: JSON.stringify(doc)})
//client
var docs = {docs}