我正在使用此模块:https://github.com/nulltask/express-csv (还试了几次)
MyModel.find(mquery,function(err, list){
if(err){
console.log(err);
var response = {
success: false,
data: null
};
res.json(response);
}else{
console.log(list);
res.setHeader('Content-disposition', 'attachment; filename=mylist.csv');
res.csv(list);
}
});
问题是csv文件中呈现的内容。 它是Mongoose的模型本身。但是在控制台上记录实际数据。
任何提示?
更新
显然它是在CSV文件中呈现的静态JSON数据,所以必须是同步的东西....
答案 0 :(得分:0)
mongoose查询返回一个Document,而不是一个简单的对象,尽管在他们的文档中没有明确说明(stackoverflow.com/a/14504387/3366809)。这会使express-csv或任何试图遍历它的东西混乱。在查询中使用lean()返回对象而不是Document。
var myquery = MyModel.find(mquery);
myquery.lean().exec(function(err, list) {
if (err) {
console.log(err);
var response = {
success : false,
data : null
};
res.json(response);
} else {
console.log(list);
res.setHeader('Content-disposition', 'attachment; filename=mylist.csv');
res.csv(list);
}
});