Ошибка ссылки: inCart не определен в Node.js

#javascript #node.js

Вопрос:

Я создаю корзину покупок, когда я начал кодировать, я получаю ReferenceError: inCart is not defined ошибку:

 ReferenceError: inCart is not defined
    at Object.<anonymous> (C:UsersWin10nodexapp.js:20:1)
    at Module._compile (internal/modules/cjs/loader.js:1068:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
    at Module.load (internal/modules/cjs/loader.js:933:32)
    at Function.Module._load (internal/modules/cjs/loader.js:774:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47
 
 'use strict';
const config = require('config');
class Cart {
  constructor() {
    this.data = {};
    this.data.items = [];
    this.data.totals = 0;
    this.data.formattedTotals = '';
  }
}
module.exports = new Cart();
inCart(productID = 0) {
  let found = false;
  this.data.items.forEach(item => {
    if (item.id === productID) {
      found = true;
    }
  });
  return found;
} 

Ответ №1:

Вам нужно определить функцию с помощью ключевого слова function

 function inCart(productID = 0) {}
 

Или используйте синтаксис функции со стрелкой следующим образом

 const inCart = (productId=0) => {};
 

Пожалуйста, имейте в виду, что функции, определенные с помощью выражений функций, должны быть определены до вызова. Выражения функций-это функции, которые вы определили с помощью ключевого слова переменной следующим образом:

 var inCart = function(productID = 0){}
 

или

 let inCart = (productID=0) => {} 
 

Ответ №2:

Вы используете строгий режим 'use strict' . При использовании строгого режима вы не можете использовать необъявленные переменные, это приведет к ошибке ссылки. Вы должны объявить функцию, используя function ключевое слово, как показано выше.