首页 > 解决方案 > Node Red 中的 Javascript Else If 语句有问题

问题描述

我整天都在与这个问题作斗争。这是我的代码片段,下面的 5 行else if是事情变得棘手的地方。我也是 Javascript 的新手,所以这可能是我无法发现错误的原因,但从我在其他地方看到的情况来看,这段代码应该可以工作。还交换了第 5 行和第 6 行的注释。

if (msg.payload.License_Plate !== null) {
    // This portion checks for a valid number plate
    if (readlpr == dblpr); {        // we have a direct match, open the gate
        opengate = 1;               // will send open signal to gpio
    } else if(readlpr !== null); {     // from here on, we are checking for a partial plate match
        validdigits = 0;  // make sure we have data before continuing, as may be a rfid match
        {
        if (!context.count); {   // check to see if counter already used, if not initialise it
            context.count = 0;

错误消息的图像

在此处输入图像描述

标签: javascriptif-statementnode-red

解决方案


你有几个错误:

if (readlpr == dblpr); {
...
} else if(readlpr !== null); {
...
if (!context.count); {

还有一个额外的开口支架。

这些结尾不应该有分号:

if (readlpr == dblpr) {
...
} else if(readlpr !== null) {
...
if (!context.count) {

最后它应该看起来像这样:

if (msg.payload.License_Plate !== null) {
    if (readlpr == dblpr) {
        opengate = 1;
    } else if(readlpr !== null) {
        validdigits = 0;
    //  { <!-- Remove this as well, it's an extra brace
        if (!context.count) {
            context.count = 0;

推荐阅读