我正在尝试将json数据转换为Xlsx文件并将其保存在文件夹中。我一直在尝试使用icg-json-to-xlsx模块,但到目前为止,我一直无法使用它。我的代码如下所示:
jsonXlsx = require('icg-json-to-xlsx');
filename = path.join('./files', "output.xlsx");
outputFile = jsonXlsx(filename, result) //result contains json data
console.log(outputFile);
但是我得到这个错误
outputFile = jsonXlsx(filename, result)
^
TypeError: Property 'jsonXlsx' of object # is not a function
从mongodb中获取数据:在路由中:
router.get('/', function(req, res, next) {
fileController.getAll(function(err, result){
if(err){
res.send(500,err);
}
// res.json(result);
var data = result;
在控制器中:
FileController.prototype.getAll = function(callback){
File.find( {}, {_id: false, id: true, name: true, status: true}, function(err, file){
if(err) {
return callback(err);
} else {
if (!file) {
return callback('file not found');
}
}
callback(null, file);
}
)};
试试这个
outputFile = jsonXlsx.writeFile(filename, result);
jsonXlsx是对象,其中包含诸如writeFile,writeBuffer之类的方法,因此您不能将jsonXlsx作为函数来调用...或者您需要像这样添加对函数的引用
jsonXlsxWriteFile = require('icg-json-to-xlsx').writeFile;
outputFile = jsonXlsxWriteFile(filename, result)
例子
var jsonXlsx = require('icg-json-to-xlsx');
var path = require('path');
var filename = path.join('./files', "output.xlsx");
var result = [
{ id: '1', name: 'test', status: '123' },
{ id: '2', name: 'david', status: '323'},
{ id: '3', name: 'ram', status: '2323' }
];
var outputFile = jsonXlsx.writeFile(filename, JSON.stringify(result));
console.log(outputFile);
更新:
File
.find({ })
.select({
_id: false, id: true, name: true, status: true
})
.lean()
.exec(function(err, file) {
//
});
在您的情况下,查询返回MongooseDocuments,但是jsonXlsx
需要普通的JavaScript对象,因此这就是您应该使用lean()的原因
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句