我正在学习node.js。每当我运行节点example.js时它会说
http.js:529 var key = name.toLowerCase();
^
TypeError:对象200没有方法'toLowerCase'
这是FF和chrome的已知问题。
答案 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 Worldvar 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/');