Не удается получить доступ к «приложению» перед инициализацией [VS code javascript webdev]

#node.js

#node.js

Вопрос:

Это мой серверный файл, который называется app.js и каждый раз, когда я запускаю узел app.js , это выдает мне сообщение об ошибке: «Не удается получить доступ к «приложению» перед инициализацией» Кто-нибудь может помочь мне понять, почему и как я могу это исправить? Вот мой код:

 require('dotenv').config();


const path = require('path');

const express = require('express'); // import express package
const app = express();

const homeRouter = require('./routes/home'); //refers to the home.js file in routes
const errorRouter = require('./routes/404'); //refers to the 404.js file in routes


const PORT = process.env.PORT || 3000;

app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

app.use('/', (request, response, next) => {
  response.send("<h1> Welcome to my Project </h1>");
  next();
});


app.use(express.static(path.join(__dirname, 'public')));


app.use(homeRouter);
app.use(errorRouter);


app.listen(PORT);
 

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

1. Я не вижу в коде, которым вы делитесь, ничего, что могло бы вызвать Cannot access 'app' before initialization ошибку — вы уверены, что это не из homeRouter или errorRouter ? Кроме того, вы не должны вызывать next() после вызова response.send(...) next должен использоваться только в том случае, если вы пытаетесь передать управление следующей функции промежуточного программного обеспечения, но в вашем случае вы завершаете запрос response.send(...) .

Ответ №1:

Этот код выглядит нормально. Проверьте ссылку на приложение в файлах маршрутизатора или поделитесь этими файлами, чтобы я мог посмотреть.

Кстати, ваше промежуточное программное обеспечение отправляет ответ, поэтому, если ваш маршрутизатор вызывает res.send или что-то подобное, это приведет к ошибке.