Search code examples
javascriptif-statementnode-red

Having problems with Javascript Else If statement in Node Red


I have been fighting this problem all day. Heres a snippet of my code, 5 lines down in the else if is where things get screwy. I am also new to Javascript so that may be the reason I am unable to spot the mistake, but from what I have seen elsewhere, this code should work. Also the comments on lines 5 and 6 are swapped.

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;

Image of error message

enter image description here


Solution

  • You have a few errors:

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

    And also an extra opening-brace.

    These shouldn't have a semi colon on the end:

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

    In the end it should look something like this:

    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;