javascript - 为什么我的 fs.readFileSync 不起作用

标签 javascript node.js fs

为什么这段代码不起作用? 如果我评论 fs.readFileSync('file.html'); 代码有效并创建文件“file.html” 但如果我取消注释, fs.writeFileSync 将不起作用,并且程序会崩溃并出现错误:

fs.js:427 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ Error: ENOENT, no such file or directory 'file.html' at Object.fs.openSync (fs.js:427:18) at Object.fs.readFileSync (fs.js:284:15) at Object. (/home/pedro/startupEngineering/hw3/Bitstarter/testrestler.js:15:6) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3

#!/usr/bin/env node


var fs = require('fs');
var rest = require('restler');

var restlerHtmlFile = function(Url) {
  rest.get(Url).on('complete', function(result) {
   fs.writeFileSync('file.html',result);
  });
};

if(require.main == module) {
  restlerHtmlFile('http://obscure-refuge-7370.herokuapp.com/');
  fs.readFileSync('file.html');
}

else {
 exports.checkHtmlFile = checkHtmlFile;
}

最佳答案

改变

var restlerHtmlFile = function(Url) {
  rest.get(Url).on('complete', function(result) {
   fs.writeFileSync('file.html',result);
  });
};

if(require.main == module) {
  restlerHtmlFile('http://obscure-refuge-7370.herokuapp.com/');
  fs.readFileSync('file.html');
}

var restlerHtmlFile = function(Url) {
  rest.get(Url).on('complete', function(result) {
   fs.writeFileSync('file.html',result);
   fs.readFileSync('file.html');
  });
};

if(require.main == module) {
  restlerHtmlFile('http://obscure-refuge-7370.herokuapp.com/');
}

第二个参数为rest.get(Url).on是一个异步回调函数,当 complete 时会调用该函数发生,然后才创建文件。但您正在阅读该文件,甚至在 complete 之前。发生。这就是您收到此错误的原因。

关于javascript - 为什么我的 fs.readFileSync 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081270/

相关文章:

c# - 从用户控件内部在 Umbraco 中进行 Ajax 调用

javascript - 为什么 NodeJS 中的这个导出函数不能按我想要的方式工作?

node.js - Mongoose 中子文档的总和

node.js - NodeJS 写入文件 fs 流时出错

javascript - indexedDb 打开 onsuccess 且没有 onupgradeneed 事件

javascript - @next 为 npm 指定了什么包版本?

node.js - Node js 中的文件系统导致错误

node.js - fs-stat 给出值 - Node.js

javascript - 使用 javascript 的 Asp.net 按钮可见性

javascript - 身份验证后 Yahoo API 出现问题