2013-01-05 33 views
0

不知道我在做什么错在这里?我的简单node.js函数有什么问题?

错误:

/Users/user/node/app.js:3 
makeRequest("Here's looking at you, kid"); 
^ 
TypeError: object is not a function 
    at Object.<anonymous> (/Users/user/node/app.js:3:1) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

app.js

var makeRequest = require('./make_request'); 

makeRequest("Here's looking at you, kid"); 
makeRequest("Hello, this is dog"); 

make_request.js

var http = require('http'); 

var makeRequest = function(message) { 

    //var message = "Here's looking at you, kid."; 
    var options = { 
     host: 'localhost', port:8080, path: '/', method: 'POST' 
    } 

    var request = http.request(options, function(response) { 
     response.on('data', function(data) { 
      console.log(data); 
     }); 
    }); 
    request.write(message); 
    request.end(); 
}; 

exports = makeRequest; 

回答

4

要返回function作为模块对象,将其设置为module.exports

module.exports = makeRequest; 

exports仅仅是一个方便的拷贝module.exports

+0

更好但仍然:' events.js:71 throw arguments [1]; //未处理 '错误' 事件 ^ 错误:在errnoException连接ECONNREFUSED (net.js:770:11) 在Object.afterConnect [按的onComplete](net.js:761:19)' – ian

+0

试过那些但类似错误:'events.js:71 throw arguments [1]; //未处理 '错误' 事件 ^ 错误:的getaddrinfo ENOENT 在errnoException(dns.js:31:11) 在Object.onanswer [按的onComplete](dns.js:123:16)' – ian

+0

我不真正了解。这是我试图做的'node.js'教程,所以我对它非常基本。尽管如此,它看起来像是某种地址错误。 – ian

1

您需要调用的函数。

makeRequest.makeRequest("Your message"); 

您也可以通过做简化代码:

module.exports.makeRequest = function(message) { 
    //... 
}; 
+0

尝试,但得到这个:'/Users/user/node/app.js:3 makeRequest.makeRequest( “在这里看着你,孩子”);^TypeError:对象#在Object处没有方法'makeRequest'。 (/Users/user/node/app.js:3:13)at Module._compile(module.js:449:26)at Object.Module._extensions..js(module.js:467:10)at Module在module.runMain(module.js:492:10)上​​的Function.Module._load(module.js:312:12)处的process.startup.processNextTick.process._tickCallback()中加载.load(module.js:356:32) node.js:244:9)' – ian

0

我相信你是在app.js的第一行导入一个命名空间。这个命名空间是make_request。 而且您还试图调用名为make_request的名为make_request的函数。 就试试这个:

makeRequest.makeRequest("message"); on line 3 and 4 of app.js 
+0

试过但得到这个:'/Users/user/node/app.js:3 makeRequest。makeRequest(“这是看着你,小子”); ^ 类型错误:对象#没有方法 'makeRequest的' 在对象。 (/Users/user/node/app.js:3:13) 在Module._compile(module.js:449:26) 在Object.Module._extensions..js(module.js:467:10)在module.runMain(module.js:492:10) at process.startup处的Module.load(module.js:356:32) 处的Function.Module._load(module.js:312:12) 。 processNextTick.process._tickCallback(node.js中:244:9) ' – ian

+0

是啊,也许我应该这样的超级基本教程之前,做一些更多的教程? – ian