2012-12-01 53 views
0

跟隨誤差創建程序試圖執行測試的POST API無法爲POST API

events.js發生了:71 扔argumentt [1]; //未處理 '錯誤事件' 錯誤:在errnoException連接ECONNREFUSED (net.js:769:11) 在Object.afterConnect [按的onComplete](net.js:760:19)

的代碼如下:

var http = require('http'); 
assert = require('assert') 

var opts = { 
host:'localhost', 
port:8000, 
path:'/send', 
method:'POST', 
headers:{'content-type':'application/x-www-form-urlencoded'} 
} 

var req = http.request(opts,function(res) { 
res.setEncoding('utf8') 

var data = "" 
res.on('data', function(d) { 
data += d 
}) 

res.on('end',function() { 
assert.strictEqual(data, '{"status":"ok","message":"Tweet recieved"}') 
}) 
}) 

req.write('tweet=test') 
req.end() 
+1

」連接被拒絕「錯誤可能表示在端口8000上沒有任何內容正在監聽本地主機。您可以在Linux上檢查:'sudo lsof -Pn | grep LISTEN'並查看是否有任何東西在8000上進行偵聽,或嘗試使用「telnet localhost 8000」並查看是否也拒絕了連接。 –

+0

我正在使用Windows 7,告訴我你是否有任何解決方案。 謝謝。 – AbhishekDwivedi

+0

你可以在Windows上使用telnet,雖然你可能必須啓用它(我做過):http://www.fettesps.com/windows-7-enable-telnet/由於我沒有進程監聽端口8000,我得到Windows上的「連接失敗」。 –

回答

1

你需要創建一個服務器(tweet.js)

var express = require('express'); 
var app = express.createServer(); 
app.listen(8000); 
var tweets = []; 
app.get('/', function(req, res) { 
    res.send('Welcome to Node Twitter'); 
}) 
app.post('/send', express.bodyParser(), function(req, res) { 
    if (req.body && req.body.tweet) { 
    tweets.push(req.body.tweet); 
    res.send({status:"ok", message:"Tweet received"}); 
    } else { 
    //no tweet? 
    res.send({status:"nok", message:"No tweet received"}); 
    } 
}); 
app.get('/tweets', function(req,res) { 
    res.send(tweets); 
}); 

,並與「節點tweet.js運行它「