nodejs打开多个html文件不起作用

时间:2016-05-05 16:44:59

标签: node.js

我尝试了一些打开文件的不同npm包,但我遇到了同样的问题。

https://www.npmjs.com/package/opn
https://www.npmjs.com/package/open

问题:我无法一次在硬盘上打开多个html文件。但是当我试图打开其中一个时它工作正常。是什么导致了这个问题?

这不起作用(网页无法在我的浏览器中打开):

var fs = require('fs');
var opn = require('opn');

fs.writeFile('open.html', 'hello');
fs.writeFile('open1.html', 'hello1');
fs.writeFile('open2.html', 'hello2');
fs.writeFile('open3.html', 'hello3');
fs.writeFile('open4.html', 'hello4');
fs.writeFile('open5.html', 'hello5');

console.log('files created');

opn('open.html');
opn('open1.html');
opn('open2.html');
opn('open3.html');
opn('open4.html');
opn('open5.html');

但是WORKS下方的代码(我的浏览器中的一个网页打开正常):

var fs = require('fs');
var opn = require('opn');

fs.writeFile('open.html', 'hello');

console.log('file created');

opn('open.html');

1 个答案:

答案 0 :(得分:1)

如果您发现副作用,可以使用fs.writeFileSync代替fs.writeFilehttps://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

fs.writeFile是异步的,会立即返回(即使文件尚未创建)。如果要等待操作完成,可以将其与回调一起使用。

fs.writeFileSync阻塞主线程,直到写入文件,然后才返回。如果您不想过多地更改代码,可以使用它。