[英]NodeJS res.write doesn't work console works
我正在嘗試使用Nodejs創建REST JSON,但是當我嘗試編寫時,它給了我錯誤,有人可以幫忙嗎?
var oracle = require ( 'oracle' ) ;
var http = require ( 'http' ) ;
var url = require ('url');
var port = 80 ;
var testarray = [];
var cnnString = {
hostname : 'xxx.xxx.xxx.xxx',
port : xxxxx,
database : 'xxxxxxxxxx.com' ,
user : 'xxxxx' ,
password : 'xxxxxx'
} ;
oracle.connect ( cnnString, countrylist ) ;
function countrylist( err, connection ) {
var reader = connection.reader("select distinct company_code, company_name from mbl_employee_v order by company_code", []);
function doRead(cb) {
reader.nextRow(function(err, row) {
if (err) return cb(err);
if (row) {
// do something with row
testarray.push(JSON.stringify(row));
return doRead(cb)
} else {
// we are done
return cb();
}
})
}
doRead(function(err) {
if (err) throw err; // or log it
console.log("all records processed");
// console.log(testarray);
});
}
var app = http.createServer ( cb ) ;
app.listen ( port , function () {
console.log ( 'Http server listening at port : ' + port ) ;
} ) ;
function cb ( req, res ) {
var QueryVal = url.parse(req.url,true);
res.writeHead ( 200 , { 'Content-Type' : 'application/json' } ) ;
switch ( QueryVal.pathname ) {
case '/' :
res.write ( "Hello, World" ) ;
break ;
case '/about' :
console.log(testarray);
res.write (testarray) ;
break ;
case '/product' :
res.write ( 'product' ) ;
break ;
default :
res.write ( 'unknow' ) ;
break ;
}
res.end ( '' ) ;
} ;
這里我的console.log顯示了數據,但是res.write給我錯誤
http.js:851拋出新的TypeError(“第一個參數必須是字符串或Buffer”); ^ TypeError:第一個參數必須是字符串或Buffer
- 在ServerResponse.OutgoingMessage.write(http.js:851:11)
- 在Server.cb(/opt/Nodejs/ex05-readData01.js:65:7)
- 在Server.emit(events.js:98:17)
- 在HTTPParser.parser.onIncoming(http.js:2108:12)
- 在HTTPParser.parserOnHeadersComplete [as onHeadersComplete](http.js:121:23)
- 在Socket.socket.ondata(http.js:1966:22)
- 在TCP.onread(net.js:527:27)
做這個
res.write(JSON.stringify(testArray));
代替
res.write(testArray);
因為write
函數將String或Buffer作為參數,並且您正在傳遞數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.