beN*_*erd 2 javascript csv mongodb node.js
我正在尝试使用mongodb中的node.js导出csv.为此,我开始使用此代码:
app.get('/export', function(req, res) {
var spawn = require('child_process').spawn,
ls = spawn('mongoexport');
res.sendfile('/home/database.csv');
});
Run Code Online (Sandbox Code Playgroud)
这很好用.然后为了使它更有用,我尝试使用参数使用mongoexport在下面编写代码:
app.get('/export', function(req, res) {
var spawn = require('child_process').spawn,
ls = spawn('mongoexport --db lms --collection databases --fields firstname,lastname,email,daytimePhone,addressOne,city,state,postalCode,areaOfStudy,currentEducationLevel,company --csv --out /home/database.csv');
res.sendfile('/home/database.csv')
});
Run Code Online (Sandbox Code Playgroud)
这引发了一个异常:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Run Code Online (Sandbox Code Playgroud)
然后我尝试只使用一个参数,但它给出了同样的错误:(
我也试过这个看看参数是否以这种方式工作但是同样的错误:
spawn('mongoexport',['--csv']);
Run Code Online (Sandbox Code Playgroud)
spawn的语法是:
spawn(<command>, [array of arguments]);
Run Code Online (Sandbox Code Playgroud)
例如,ls使用-l /home选项执行命令将如下所示:
ls = spawn('ls', ['-l', '/home'];
Run Code Online (Sandbox Code Playgroud)
所以你spawn('mongoexport',['--csv']);正朝着正确的方向前进,但mongoexport --csv无效.这就是你收到错误的原因.mongoexport需要的不仅仅是--csv.与上面所做的一样,例如,您需要指定数据库名称(-d "lms"),集合名称(-c "databases"),字段名称(--fields firstname,lastname)等.
在你的情况下,它应该是这样的:
var spawn = require('child_process').spawn;
app.get('/export', function(req, res) {
var mongoExport = spawn('mongoexport', [
'--db', 'lms', '--collection', 'databases',
'--fields',
'firstname,lastname,email,daytimePhone,addressOne,city,state,postalCode,areaOfStudy,currentEducationLevel,company',
'--csv'
]);
res.set('Content-Type', 'text/plain');
mongoExport.stdout.on('data', function (data) {
if (data) {
// You can change or add something else here to the
// reponse if you like before returning it. Count
// number of entries returned by mongoexport for example
res.send(data.toString());
} else {
res.send('mongoexport returns no data');
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2524 次 |
| 最近记录: |