Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js示例代码不工作_Javascript_Node.js - Fatal编程技术网

Javascript Node.js示例代码不工作

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"); });

我正在尝试运行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");
});


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中编写的内容进行了操作,所以本教程是错误的,不是错误的,只是不是为它编写的。