stdout write with Nodejs
stdout write with Nodejs
我刚开始使用一些现代Javascript,我决定使用Nodejs,因为它似乎是目前桌面上最流行的JS框架,我不明白为什么我的代码不起作用,也不明白我收到的相关错误消息。
考虑这个片段
var a = 5;
var func = function(){return arguments.length;};
process.stdout.write(+func(1,2,3,a));
它不起作用,并生成以下错误消息
net.js:612
throw new TypeError('invalid data');
^
TypeError: invalid data
at WriteStream.Socket.write (net.js:612:11)
at Object.<anonymous> (var_1.js:3:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
我是一名C/C++程序员,这对我来说绝对是神秘的,而且我在调用func
之前使用了+
来确保结果是integer
,那么为什么write
会抱怨呢?
经过一些无意义的添加+ ''n'
使该代码工作
var a = 5;
var func = function(){return arguments.length;};
process.stdout.write(+func(1,2,3,a) + ''n');
有人能解释发生了什么吗?
给.write()
的第一个参数应该是String
或Buffer
。不允许使用Number
。
process.stdout.write(func(1,2,3,a).toString());
process.stdout.write(String(func(1,2,3,a)));
加法运算符(a + b
)在级联''n'
时隐式地进行这种转换。
只能将字符串或Buffer
s写入套接字。(stdout
是一个套接字。)由于整数不是字符串或缓冲区,尝试将其写入stdout
是错误的。
将字符串连接为整数会将整数强制(转换)为字符串,这就是它工作的原因。您可以连接一个空字符串(i+''
)或调用整数的toString
方法。
var writeBuffer = Buffer(1);
writeBuffer[0] = 1; //Value to be written
process.stdout.write(writeBuffer);
相关文章:
- Architecture for CPU intensive tasks with NodeJS & Socke
- Nodemailer with Gmail and NodeJS
- Bluebird unhandled Error with emit NodeJS
- nodemailer nodejs: sendmail exited with 127
- Web App Architecture - PublishSubscribe Pattern with NodeJS
- NodeJS with Child_Process - 如何转义我的命令
- NodeJS:在循环中使用 Promise with Q
- nextTick error with NodeJS
- Java to JavaScript with NodeJS convertion
- Count Undefined with MongoDB and Nodejs
- NodeJS prototyping with module.exports
- stdout write with Nodejs
- Swig for loop with Nodejs, Express,
- 使用$http.get(mongoose with nodejs)在嵌套的JSON中获取数组
- Problems with nodejs
- Basic REST API with Nodejs and Express4
- Promisifying bcrypt-nodejs with Bluebird
- NodeJS with Java RESTful backend?
- NodeJS with MongoDB -实例化"db"的最佳实践;变量
- Using Nodejs with Typescript