The following code outputs the content of the index.html (it just contains the text hello world) to the browser. However, when I replace readFile with readFileSync, the request times out. What am I missing? Is a different kind of buffer required? I am using node 0.61 and express 2.4

var express = require('express');

var fs = require('fs');

var app = express.createServer(express.logger());

app.get('/', function(request, response) {

fs.readFile('index.html', function(err, data){

response.send(data.toString());

});

});

var port = process.env.PORT || 5000;

app.listen(port, function() {

console.log("Listening on " + port);

});

解决方案

fs.readFile takes a call back which calls response.send as you have shown - good. If you simply replace that with fs.readFileSync, you need to be aware it does not take a callback so your callback which calls response.send will never get called and therefore the response will never end and it will timeout.

You need to show your readFileSync code if you're not simply replacing readFile with readFileSync.

Also, just so you're aware, you should never call readFileSync in a node express/webserver since it will tie up the single thread loop while I/O is performed. You want the node loop to process other requests until the I/O completes and your callback handling code can run.

vs中readfile的作用,readFile和readFileSync之间的区别相关推荐

  1. java中static、final 和 static final之间的区别

    java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...

  2. java中双引号和单引号_Java中的单引号和双引号之间有区别吗?

    问题 Java中的单引号和双引号之间有区别吗? #1 热门回答(126 赞) 对于literalchar使用单引号,对于literalString使用双引号,如下所示: char c = 'a'; S ...

  3. 【整理】Python中的re.search和re.findall之间的区别和联系 + re.finall中带命名的组,不带命名的组,非捕获的组,没有分组四种类型之间的区别

    之前自己曾被搞晕过很多次. 后来使用这些函数次数多了之后,终于比较清楚的弄懂了两者之间的区别和关系了. 尤其是一些细节方面的注意事项了. 在看下面的总结和代码之前,请先确保你对如下基本概念已经有所了解 ...

  4. java字面量和符号引用_java中字面量,常量和变量之间的区别(附:Integer缓存机制)...

    一.引子 在各种教科书和博客中这三者经常被引用,今天复习到内存区域,想起常量池中就是存着字面量和符号引用,其实这三者并不是只在java中才有,各个语言中都有类似的定义,所以做一下总结,以示区分. 二. ...

  5. Pandas中map,applymap和apply方法之间的区别

    本文翻译自:Difference between map, applymap and apply methods in Pandas Can you tell me when to use these ...

  6. php中this,self,parent三个关键字之间的区别(转载)

    PHP5是一具备了大部分面向对象语言的特性的语言,比PHP4有 了很多的面向对象的特性,但是有部分概念也比较难以理解,这里我主要谈的是 this,self,parent三个关键字之间的区别.从字面上比 ...

  7. sql语句截断_SQL Server中SQL截断和SQL删除语句之间的区别

    sql语句截断 We get the requirement to remove the data from the relational SQL table. We can use both SQL ...

  8. C语言中指针*p、p以及p之间的区别以及*p和**p的区别

    *p.p以及&p之间的区别 假设我们定义一个指针p. 那么会经常使用到三个符号: 1,p: 2,*p; 3,&p; p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来 ...

  9. Java中 break、continue 和 return三者之间的区别

    一.Java break 可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试 以下实例使用了 break 关键字来跳出当前循环: public class Main {public s ...

最新文章

  1. 设置vue运行npm run dev时候,项目在浏览器自动打开页面的方法
  2. 服务器可以ping通,Write failed: Broken pipe
  3. UI设计需要学习什么软件?
  4. 明知道计算机是吃青春饭,为什么还有那么多人前仆后继
  5. php xcache 例子,PHP       xcache
  6. 基于NSGA3的swat模型情景的多目标优化算法,python
  7. Swift和Object-C的区别和优缺点
  8. 关于csdn 博客图片无法加载的问题!
  9. itunes显示无法更新服务器失败怎么办啊,更新iTunes出现错误 iTunes更新失败解决方案...
  10. 解析李笑来新书《韭菜的自我修养》
  11. sound函数及大调音阶播放
  12. 苹果市场金融类app上架ios1.2 ,5.2.1或3.21被拒原因解析
  13. usb触摸屏驱动移植
  14. 【基础入门题026】佩尔数列Pell(n)
  15. 测试部门KPI考核指标(绩效考核)
  16. js 函数function用法
  17. 工作经验分享-vivo链路监控
  18. 指纹支付 android 9,华为G9青春版怎么设置指纹功能? 华为G9指纹支付解锁的教程...
  19. Mac OSX常用软件
  20. iredmail可以发邮件但是收不到邮件问题汇总

热门文章

  1. 太阳上挖煤的可行性报告
  2. 编程哲学之C#篇:01——创世纪
  3. 工业信息物理系统测试验证平台ETest_CPS
  4. QT添加GPIB驱动库
  5. Latex证明环境 白方块和黑方块
  6. 计算机笔试逻辑推理题,IT面试常见逻辑推理题.doc
  7. DragRow-GYF
  8. 偷天换日合约易主,地址变脸移花接木——底层函数误用漏洞 | 漏洞分析连载之四...
  9. 渡一教育公开课web前端开发JavaScript精英课学习笔记(一)前言
  10. 算法第十期——DFS(深度优先搜索)的剪枝优化