node.js http.js:TypeError:对象200没有方法'toLowerCase'

时间:2011-04-20 17:38:48

标签: http node.js

我正在学习node.js。每当我运行节点example.js时它会说

  

http.js:529   var key = name.toLowerCase();

                     ^
     

TypeError:对象200没有方法'toLowerCase'

这是FF和chrome的已知问题。

4 个答案:

答案 0 :(得分:5)

Node.js与Firefox或Chrome无关,除了与Chrome共享相同的javascript引擎(V8)。所以这不是Chrome或FF的问题,而是使用Node.js,V8或您自己的代码之一。

问题可能是您将错误类型的参数传递给函数,例如数字而不是字符串。

// For example
response.write(200);
// Will fail because 200 is a number, not a string

答案 1 :(得分:3)

  

这是FF和的已知问题   铬。

您是否在浏览器中运行node.js? Node.js应该从命令作为服务器运行 线。

答案 2 :(得分:2)

看起来name的{​​{1}}值为200.数字没有Number方法。如果您希望toLowerCase中的非数字值,请先将其转换为字符串name

答案 3 :(得分:2)

我刚刚使用net.tutsplus.com中的示例

自行调查此消息
// Doesn't work with node.js 0.4.7
var sys = require("sys"),  
    http = require("http");  

http.createServer(function(request, response) {  
    response.sendHeader(200, {"Content-Type": "text/html"});  
    response.write("Hello World!");  
    response.close();  
}).listen(8080);  

sys.puts("Server running at http://localhost:8080/");

要使其工作,请引用由@ Na7coldwater和@Chandru推断的200,并更正两个函数名称(sendHeader()应为setHeader(),close()应为end()):

// Works with node.js 0.4.7
var sys = require("sys"),  
    http = require("http");  

http.createServer(function(request, response) {  
        response.setHeader("200", {"Content-Type": "text/html"});  
        response.write("Hello World!");  
        response.end(); 
}).listen(8080);  

sys.puts("Server running at http://localhost:8080/"); 

这是来自nodejs.org

的当前Hello World
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');