我有一个奇怪的错误:
var http = require("http");
var request = require("request");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
});
response.end();
}).listen(8888);
这个想法是让它作为网络服务器收听,然后做一个请求。 但这就是我得到的错误:
request('http://www.google.com', function (error, response, body) {
^
TypeError: object is not a function
at Server.<anonymous> (/Users/oplgkim/Desktop/iformtest/j.js:8:2)
at Server.EventEmitter.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2056:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:120:23)
at Socket.socket.ondata (http.js:1946:22)
at TCP.onread (net.js:525:27)
我做错了什么? 我安装了请求,所以不是它:)
答案 0 :(得分:29)
由于您具有相同名称的局部变量,因此对request
全局变量的访问将丢失。重命名其中一个变量将解决此问题:
var http = require("http"); var request = require("request");
http.createServer(function(req, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
response.end();
}).listen(8888);
答案 1 :(得分:-1)
您不再能够访问全局变量'request'。您需要使用其他名称重命名本地变量“ request”,问题将得到解决。