NodeJS res.write doesn't work console works
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抛出new TypeError('第一个参数必须是字符串或Buffer');^ TypeError:第一个参数必须是字符串或Buffer
- at ServerResponse.OutgoingMessage.write (http.js:851:11)
- at Server.cb(/opt/Nodejs/ex05-readData01.js:65:7)
- Server.emit (events.js: 98:17)
- 在HTTPParser.parser.onIncoming (http.js:2108:12)在HTTPParser
- 。解析onHeadersComplete [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作为参数,而您传递的是数组
相关文章:
- 检查onsubmit doenst work jquery contactform上的函数
- Array.length似乎不起作用;console.log则显示其他情况
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- console.log以外的Javascript输出函数
- Console.debug在ie10中不工作
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- AngularJS ng-init does not work
- 为什么生成器中的console.log会按这样的顺序出现
- async问题,JS Promise无法返回结果,但可以使用console.log
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 我应该返回一个类似console.log()的方法调用吗
- console.log无法运行Mac OS X
- 运行时表单发布;t work-jQuery/AAJX/Post
- 如何使console.log可配置
- 如何使用console.log语句在Mocha中测试函数
- 为什么我可以't直接将console.log()设置为回调函数
- Node.js/Express未输出console.log,highcharts.js给出未定义的错误
- console.log在角度控制器内不工作
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- NodeJS res.write doesn't work console works