所以我跟随Sitepoint提供的完整的Stack Javascript开发,我遇到了一个在第6章中发现的问题。我已经设置了一个基本的http服务器,它应该允许传入连接。
当我运行index.js时,我在控制台上看到一条日志,说它在我指定的地址成功运行(127.0.0.1:1337)
只要我尝试在浏览器中访问该地址,它就无法连接,并且在我的终端中出现以下错误
TypeError: Cannot read property 'toUpperCase' of undefined
at Server.<anonymous> (/Users/user/Documents/Git projects/human-resources/index.js:8:26)
at emitTwo (events.js:106:13)
at Server.emit (events.js:191:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:543:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:105:23)很明显这条线路有问题
req.method = req.method.toUpperCase();但我不知道为什么,我想如果我注释掉它可能会起作用,但当我这样做时,我得到了一个类似于上面的错误,但这一次显示res.writeHead不是一个函数
TypeError: res.writeHead is not a function
at Server.<anonymous> (/Users/user/Documents/Git projects/human-resources/index.js:12:9)
at emitTwo (events.js:106:13)
at Server.emit (events.js:191:7)
at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:543:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:105:23)如果任何人能提供一些关于我或我的代码哪里出错的见解,那就太好了,我的完整代码列在下面。
var http = require('http');
http.createServer(function (res,req) {
//A parsed url to work with in case there are parameters
var _url;
//In case the client uses lower case for methods
req.method = req.method.toUpperCase();
console.log(req.method + ' ' + req.url);
if (req.method !== 'GET') {
res.writeHead(501, {
'Content-Type': 'text/plain'
});
return res.end(req.method + ' is not implemented by this server');
}
if (_url = /^\/employees$/i.exec(req.url)) {
//return a list of employees
res.writeHead(200);
return res.end('employee list');
} else if (_url = /^\/employees\/(\d+)$/i.exec(req.url)) {
//find employee by id in the route
res.writeHead(200);
return res.end('a single employee');
} else {
//try to send the static file
res.writeHead(200);
return res.end('static file maybe');
}
}).listen(1337, '127.0.0.1');
console.log('Sever Running at http://127.0.0.1:1337/');发布于 2016-11-19 22:03:38
我在http.createServer()中错误地使用了请求和响应,我使用了response然后request,应该是request然后response,就像这样;
http.createServer(function (req,res) {https://stackoverflow.com/questions/40692730
复制相似问题