0
我已經建立了一個簡單的節點服務器和節點測試程序:up and running book。當我用調試跟蹤它時,它似乎工作正常,但我很好奇爲什麼console.log沒有向終端輸出任何內容。節點測試和console.log問題
服務器,app.js
var express = require('express');
var http = require('http');
var app = express();
app.set('port', process.env.PORT || 8000)
app.use(express.urlencoded());
app.use(express.json());
app.use(express.logger('dev'));
var tweets = [];
app.get('/', function (req, res) {
res.send('Welcome to Node Twitter');
});
app.post('/send', 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);
});
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
測試腳本,test.js
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');
console.log("Sending test");
var data = "";
res.on('data', function(d) {
data += d;
})
res.on('end', function() {
assert.strictEqual(data, '{"status":"ok", "message":"Tweet received"}');
console.log("test");
})
})
req.write('tweet=test')
req.end
很想一些建議。
這方面的工作? 'console.log('Express server listen on port'+ app.get('port'));' –
什麼控制檯 - 有兩個應用程序(服務器和測試客戶端),哪一個不輸出?也表示有自己的http服務器 – SergeS
道歉,test.js文件中的console.log語句不起作用。 app.js中的一個正常工作 – colster