【发布时间】:2013-07-10 09:40:24
【问题描述】:
以下代码将 index.html 的内容(它只包含文本 hello world)输出到浏览器。但是,当我将readFile() 替换为readFileSync() 时,请求超时。
我错过了什么?是否需要不同类型的缓冲区?我正在使用节点 0.61 并表示 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);
});
【问题讨论】:
-
发送完毕后你不应该打电话给
.end()吗?我已经有一段时间没有使用 NodeJS了。 -
when I replace readFile with readFileSync是什么意思?第一个需要回调,而另一个不需要。代码应为var data = fs.readFileSync('index.html');。回调永远不会被调用,因为readFileSync不使用它。这就是超时的来源。假设我理解正确。 -
@CrazyTrain 他正在使用 Express。它为你做。
-
@freakish:谢谢。我从来没有使用过 Express。
-
@freakish 谢谢,你能推荐阅读材料来更好地理解节点和回调吗?
标签: javascript node.js express