2015-04-29 171 views
0

我正在做一个项目,我正在使用Tessel来读取服务器上的文本文件并根据该值执行函数。我对node.js相当陌生,并且设法让大部分项目都能运行,但我有一个问题需要比较才能发挥作用。字符串与node.js比较

我知道它正在读值(它可能是“1”或“0”)的罚款,因为当我在代码中包含console.log(//变量)时,控制台显示值。

的基本代码,我一直在玩的是:

var http = require('http'); 

setInterval(function() { 
var options = { 
    host: 'www.users.wfleitz.com', 
    path: '/fleitzwc/example.txt' 
}; 

callback = function(response) { 
    var str = ''; 

    response.on('data', function (chunk) { 
    str += chunk; 
    }); 

    response.on('end', function() { 
    console.log(str) 

    if (str == "1"){ 
     console.log("It reads fine ") 
    }  
    }); 

} 
http.request(options, callback).end(); 

}, 1000); 

我试图走动的“如果”语句,也措辞“如果”声明:

if (str.toString == "1"){ 
      console.log("It reads fine ") 
     } 

可能有人告诉我这是一个展示位置还是语法问题?或者如果我脱离了所有基地?我认为这可能是一个问题,虽然文件应该只有一个“1”或“0”,但我有一些情况下我需要修剪文件内容以确保我只能得到那个值,但我找不到在node.js中执行此操作的方法。

谢谢你在前进, WFleitz

+1

如果控制台记录你说的话,它应该可以工作。我猜测控制台真的用空格记录东西,比如''1“'等等,你可以尝试'if(str == 1)'或使用'trim()'或记录'str.length'等。 – adeneo

+0

parseInt()也可以工作,因为可能的值是0和1. –

+0

谢谢大家。 @Kevin B,parseInt()做了诀窍。 –

回答

2

你需要调用toString()功能,像这样:

if (str.toString() == "1") { 
    // Note ------^^ parens actually call the function. 
    console.log("It reads fine ") 
} 
+2

块被连接到一个字符串,所以它不应该是一个缓冲区,我认为? – adeneo

+0

他正在谈论“我试过......”片段。这当然不会解决问题 –

0

我结束了使用这样的装饰()方法:

response.on('end', function() { 
    var strTrim = str.trim(); 
     console.log(strTrim) 

    if (strTrim == "1"){ 
    console.log("It reads fine") 
} 
    }  

再次感谢您的帮助。

+0

可能只是一个错字,但'strInt = 1'是一项任务,而不是逻辑比较。 – Tony

+1

@Tony,我上面更新了我的评论。这可能是我的语法错误。看到当我对某事感到兴奋时会发生什么?错字嘉豪。 –