node.js выдает ошибку, когда я пытаюсь запросить локальный модуль

#javascript #node.js

#javascript #node.js

Вопрос:

Где я ошибаюсь, требуя локального модуля? Ниже приведены мои фрагменты кода для запроса локального модуля. Я поместил game.js файл по следующему пути /public/javascript/game.js принимая во внимание, что app.js помещается по следующему пути /app.js

 //game.js
let players = [];
let selectedPlayers = [];
let remainingPlayers = 11;

for(var i=0; i<2; i  ){
  players.push($(".card > button").eq(i).attr("value"));
}

exports.players = players;
 
 //app.js
const express = require("express");
const bodyParser = require("body-parser");
const mySql = require("mySql");
const game = require("./game");

const app = express();

app.use(express.static("public"));
app.use(bodyParser.urlencoded({extended: true}));
app.set('view engine', 'ejs');

app.get("/play", function(req, res){
  res.render("PlayGame");
  console.log(game.players);
});

app.listen(process.env.PORT || 3000, function(req, res){
  console.log("Listening on port 3000");
});
 

Когда я запускаю это, я получаю следующую ошибку в своем терминале

 internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module './game'
Require stack:
- C:UsersakashDesktopFantasyCricketapp.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (C:UsersakashDesktopFantasyCricketapp.js:4:14)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'C:\Users\akash\Desktop\FantasyCricket\app.js' ]
}
 

Ответ №1:

Они не находятся в одной папке, поэтому ваше требование должно быть: »

 const game = require("./public/javascript/game");
 

Комментарии:

1. Когда я это делаю, я получаю эту ошибку, players.push($(«.card > button»).eq(i).attr(«value»)); ReferenceError: $ не определен в объекте.<анонимный>

2. Итак, теперь ваш модуль загружен правильно. Ошибка заключается в том, что вы пытаетесь использовать jQuery ($), но он не определен.