Javascript Node.js示例代码不工作
我正在尝试运行node.js的一些简单代码,这个hello world可以正常工作:Javascript Node.js示例代码不工作,javascript,node.js,Javascript,Node.js,我正在尝试运行node.js的一些简单代码,这个hello world可以正常工作: var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.end("Este node.js criou um servidor\n"); });
var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Este node.js criou um servidor\n");
});
server.listen(8000);
但当我尝试运行这个应该足够简单的浏览器时,浏览器(IE和chrome)会长时间保持加载状态,然后超时。有什么问题吗
var http = require("http"),
fs = require("fs");
http.createServer(function (request, response) {
request.on('end', function () {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
response.end('This page was refreshed ' + data + ' times!');
});
} else {
response.writeHead(404);
response.end();
}
});
}).listen(8000);
顺便说一句,我在与代码相同的文件夹中创建了test.txt文件,其中只有数字1。结束请求永远不会启动,因为调用服务器时请求就完成了。拆下该线并准备如下:
var http = require("http"),
fs = require("fs");
http.createServer(function (request, response) {
// request.on('end', function () {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
response.end('This page was refreshed ' + data + ' times!');
});
} else {
response.writeHead(404);
response.end();
}
// });
}).listen(8000);
var http = require("http");
var Start = function(){
var onRequest = function(request, response){
response.writeHead(200, {"Content-Type" : "text/plain" });
response.write("HEllo World");
response.end();
}
http.createServer(onRequest).listen(8888);
}
exports.Start = Start;
结束请求永远不会启动,因为调用服务器时请求已完成。拆下该线并准备如下:
var http = require("http"),
fs = require("fs");
http.createServer(function (request, response) {
// request.on('end', function () {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
response.end('This page was refreshed ' + data + ' times!');
});
} else {
response.writeHead(404);
response.end();
}
// });
}).listen(8000);
var http = require("http");
var Start = function(){
var onRequest = function(request, response){
response.writeHead(200, {"Content-Type" : "text/plain" });
response.write("HEllo World");
response.end();
}
http.createServer(onRequest).listen(8888);
}
exports.Start = Start;
HTTP处理程序中的请求对象是可读流的实例,在非流动模式下,它不会发出
end
事件。如果预期发生结束
事件,则必须恢复流
如果您不打算收集请求主体,那么根本不需要监听end
事件。您只需写下响应:
http.createServer(function(req, res) {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
res.writeHead(200, {'Content-Type': 'text/plain'});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
res.end('This page was refreshed ' + data + ' times!');
});
} else {
res.writeHead(404);
res.end();
}
}).listen();
否则,流可通过以下任一方式转换为流动模式:
req.resume();
req.on('data', function(chunk) {});
HTTP处理程序中的请求对象是可读流的实例,在非流动模式下,它不会发出
end
事件。如果预期发生结束
事件,则必须恢复流
如果您不打算收集请求主体,那么根本不需要监听end
事件。您只需写下响应:
http.createServer(function(req, res) {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
res.writeHead(200, {'Content-Type': 'text/plain'});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
res.end('This page was refreshed ' + data + ' times!');
});
} else {
res.writeHead(404);
res.end();
}
}).listen();
否则,流可通过以下任一方式转换为流动模式:
req.resume();
req.on('data', function(chunk) {});
它的结构方式似乎与我在其他方面看到的完全不同。您不应该需要结构上的request.on。一般来说,您可以使用以下内容:
var http = require("http"),
fs = require("fs");
http.createServer(function (request, response) {
// request.on('end', function () {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
response.end('This page was refreshed ' + data + ' times!');
});
} else {
response.writeHead(404);
response.end();
}
// });
}).listen(8000);
var http = require("http");
var Start = function(){
var onRequest = function(request, response){
response.writeHead(200, {"Content-Type" : "text/plain" });
response.write("HEllo World");
response.end();
}
http.createServer(onRequest).listen(8888);
}
exports.Start = Start;
导出的原因是,您可以从另一个文件开始导出(如果您选择建议的模块化设计,这是很好的。至于加载文件,您的加载方式可能会起作用,但问题是它只提供文本文件,尝试使用html文件会失败得很惨,而且您可能还希望提供html文件,以及.js和.css文件(以及其他任何内容,例如图片)。因此,请参考我的答案,这是一个非常长的答案,包含大量代码,在下面的链接中:。它的结构方式似乎与我看到的其他方式大不相同。您不应该需要request.on结构。一般来说,您可以使用以下内容:
var http = require("http"),
fs = require("fs");
http.createServer(function (request, response) {
// request.on('end', function () {
if (request.url == '/') {
fs.readFile('test.txt', 'utf-8', function (error, data) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
data = parseInt(data) + 1;
fs.writeFile('test.txt', data);
response.end('This page was refreshed ' + data + ' times!');
});
} else {
response.writeHead(404);
response.end();
}
// });
}).listen(8000);
var http = require("http");
var Start = function(){
var onRequest = function(request, response){
response.writeHead(200, {"Content-Type" : "text/plain" });
response.write("HEllo World");
response.end();
}
http.createServer(onRequest).listen(8888);
}
exports.Start = Start;
导出的原因是,您可以从另一个文件开始导出(如果您选择建议的模块化设计,这是很好的。至于加载文件,您的加载方式可能会起作用,但问题是它只提供文本文件,尝试使用html文件会失败得很惨,而且您可能还希望提供html文件,以及.js和.css文件(以及其他任何内容,例如图片)。因此,请参考我的答案,这是一个非常长的答案,包含大量代码,在下面的链接中:。我认为您不需要
请求。在('end',function(){…})
回调时。当函数(请求,响应){…}调用了
,您知道已经生成了请求。IIRC应该是fs.readFile('test.txt',{encoding:'utf-8'},fn);
我认为您不需要请求。on('end',function(){…})
回调。当函数(请求,响应){…}
被调用您知道已经生成了一个请求。IIRC应该是fs.readFile('test.txt',{encoding:'utf-8'},fn);
,因为当服务器被调用“不完全”时请求就完成了。这是因为请求
没有流式传输其主体(即使主体是空的).A'readable'
或'data'
绑定或强制的.resume()启动它需要使用
。当调用createServer
或'request'
回调时,只读取了标题。谢谢,它工作了,奇怪的是,我完全按照tutsplus中编写的内容进行了操作,所以本教程是错误的,不是错误的,只是不是为它编写的。因为当服务器被调用“不完全”时请求完成。这是因为请求
没有流式传输其正文(即使正文为空)。一个'可读的'
或'数据'
绑定或一个强制的.resume()启动它需要使用
。当调用createServer
或'request'
回调时,只读取了标题。谢谢,它工作了,奇怪的是,我完全按照tutsplus中编写的内容进行了操作,所以本教程是错误的,不是错误的,只是不是为它编写的。