小编Tee*_*nen的帖子

如何正确刷新Node.js文件writeStream?

我的问题是我无法确定何时成功写入文件并且文件已关闭.考虑以下情况:

var fs = require('fs');
var outs = fs.createWriteStream('/tmp/file.txt');
var ins = <some input stream>

...
ins.on('data', function(chunk) { out.write(chunk); });
...
ins.on('end', function() {
   outs.end();
   outs.destroySoon();
   fs.stat('/tmp/file.txt', function(err, info) {

      // PROBLEM: Here info.size will not match the actual number of bytes.
      // However if I wait for a few seconds and then call fs.stat the file has been flushed.
   });
});
Run Code Online (Sandbox Code Playgroud)

那么,在访问文件之前,如何强制或以其他方式确保文件已正确刷新?我需要确保文件存在并完成,因为我的代码必须生成一个外部进程来读取和处理文件.

io file node.js

10
推荐指数
1
解决办法
1万
查看次数

localStorage.getItem在IE 9中返回旧数据

以下示例需要在IE 9和至少两个不同的选项卡中运行.

 <input type="text" name="data" value="" placeholder="change me" id="data" />
 <p id="fromEvent">Waiting for data via <code>storage</code> event...</p>

<script type="text/javascript">
window.addEventListener("storage", function (e) {
  if (e.key == 'storage-event-test') {
      var newValue = localStorage.getItem('storage-event-test'); // returns old value
  //  var newValue = e.newValue; // returns new value
      $('#fromEvent').html(newValue);
    }
  }, false);

  $('#data').live('keyup', function () {
     var changedValue = this.value;
      $('#fromEvent').html(changedValue);
       localStorage.setItem('storage-event-test', changedValue);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

如果它试图获取数据var newValue = localstorage.getItem('storage-event-test');并在标签1输入test然后它test 在我的正确显示<p id="fromEvent">但在我的标签2中 它只写tes …

javascript html5 local-storage internet-explorer-9

7
推荐指数
1
解决办法
2128
查看次数

如何以编程方式获取npm安装模块的详细信息?

有没有方法或库可以告诉require'd模块在哪里解决,特别是它可能包含哪些二进制文件?

例如,当我需要('coffee-script')时,(AFAIK)无法告诉其安装目录以及它具有哪些命令行二进制文件.

理想情况下我需要的是require和package.json解析器之间的某种混合,例如跟随低位的'npminfo'库.

var npminfo = require('npminfo')

// get info about module
var pkginfo = npminfo.resolve('coffee-script')
pkginfo.version => '1.1.0'
pkginfo.path  => '/home/teemu/node_modules/coffee-script'
pkginfo.bins =>  { coffee: '/home/teemu/node_modules/coffee-script/bin/coffee', cake: '/home/teemu/node_modules/coffee-script/bin/cake'}

// generic info
npminfo.binpath => '/home/teemu/.node_modules/bin' 
Run Code Online (Sandbox Code Playgroud)

我确实尝试使用require.paths并浏览目录,但由于某种原因,它不包含我的模块实际安装的路径.不知何故要求仍然发现它们?

~ $ node
> require.paths
[ '/Users/teemuikonen/.node_modules',
  '/Users/teemuikonen/.node_libraries',
  '/usr/local/lib/node' ]
>

~ $ ls /usr/local/lib/node
wafadmin

~ $ ls .node_modules/
ls: .node_modules: No such file or directory

~ $ ls node_modules/
cli  cradle coffee-script ...   
Run Code Online (Sandbox Code Playgroud)

谢谢

node.js npm

3
推荐指数
1
解决办法
2453
查看次数