我在两个导出的Node.js函数中使用变量时遇到错误
变量名是缓冲区,它是一个缓冲区。
我是否正确使用js代码中的变量缓冲区?
module.exports = {
var buffer ;
init: function(data)
{
buffer = data ;
},
test: function(word)
{
var readline = require('readline');
var stream = require('stream');
// string to buffer
var baseText = buffer;
var buf = new Buffer(baseText);
//buffer to stream
var bufferStream = new stream.PassThrough();
bufferStream.end(buf);
var readLines = readline.createInterface({
input: bufferStream,
});
var count = 0;
readLines.on('line', function (line)
{
if(line.toLowerCase().indexOf(word.toLowerCase()) != -1)
return true;
}
);
return false;
}
}
答案 0 :(得分:0)
{...}
是一个对象字面值。它只能包含属性声明(name: value
)。
var
是一份声明;你不能把它放在一个对象文字的中间。
您需要单独声明变量。
答案 1 :(得分:0)
您无法在对象文字中声明变量。如果您在module.exports
之外定义,那么就不会出现任何错误。
var buffer ;
function init(data) {
buffer = data ;
}
function test(word) {
var readline = require('readline');
var stream = require('stream');
// string to buffer
var baseText = buffer;
var buf = new Buffer(baseText);
//buffer to stream
var bufferStream = new stream.PassThrough();
bufferStream.end(buf);
var readLines = readline.createInterface({
input: bufferStream,
});
var count = 0;
readLines.on('line', function (line) {
if(line.toLowerCase().indexOf(word.toLowerCase()) != -1)
return true;
});
return false;
}
module.exports = {
init: init,
test: test
}
答案 2 :(得分:0)
您无法在对象文字中声明变量。
尝试这样的事情:
var buffer;
module.exports = {
init: function(data) {}
// the rest of your code
}