#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 или что-то подобное, это приведет к ошибке.