#javascript #node.js #express
#javascript #node.js #экспресс
Вопрос:
Я изучаю курс узла и добрался до начала проекта, однако при попытке ввести местоположение хоста и на определенный порт приложение просто остается в цикле загрузки и не загружается
APP.JS
// Módulos
const express = require('express');
const handlebars = require('express-handlebars');
const bodyparser = require('body-parser');
const app = express()
const admin = require('./routes/admin.js');
// const mongoose = require('mongoose');
// Config
// Body Parser
app.use(bodyparser.urlencoded({extended:true}));
app.use(bodyparser.json);
//Handlebars
app.engine('handlebars', handlebars({defaltLayout: 'main'}));
app.set('view engine','handlebars');
//Mongoose
//Rotas
app.use('/admin',admin);
//Outros
const PORT = 8081;
app.listen(PORT, () => {
console.log('Servidor Rodando');
})
ADMIN.JS
const express = require('express');
const router = express.Router();
router.get('/', (req,res) => {
res.send('Pagina principal, painel de adm')
})
router.get('/posts', (req,res) => {
res.send('Pagina de posts');
})
router.get('/categorias',(req,res) => {
res.send('Pagina de categorias');
})
module.exports = router;
Комментарии:
1. Какую точную ошибку вы получаете? Не загружается ли веб-страница в браузере? К какому URL-адресу вы обращаетесь? Можете ли вы включить вывод консоли при запуске сервера узла?
2. При запуске скрипта он работает нормально, и выводится сообщение «сервер запущен», однако при попытке ввести localhost: 8081 страница просто загружается и не возвращается, все маршруты определены в admim.js файл в папке routes , но при попытке подключения он просто продолжает загружаться ине завершает загрузку страницы
3. Я думаю, вы переходите на неправильный URL, можете попробовать
http://localhost:8081/admin
Ответ №1:
Мне удалось устранить ошибку, следуйте коду APP.JS
// Módulos
const express = require('express');
const handlebars = require('express-handlebars');
const bodyparser = require('body-parser');
const app = express();
const admin = require("./routes/admin.js");
// const mongoose = require('mongoose');
// Config
// Body Parser
app.use(bodyparser.urlencoded({extended:true}));
app.use(bodyparser.json());
//Handlebars
app.engine('handlebars', handlebars({defaultLayout: 'main'}));
app.set('view engine','handlebars');
//Mongoose
//Rotas
app.use('/admin', admin);
//Outros
const PORT = 8081;
app.listen(PORT, () => {
console.log('Servidor Rodando');
})
ADMIN.JS
const express= require('express');
const router = express.Router();
router.get('/', (req,res) => {
res.send("Pagina principal do painel ADM");
})
router.get('/posts', (req,res) => {
res.send("Pagina de posts");
})
router.get('/categorias', (req,res) => {
res.send("Pagina de categorias");
})
module.exports = router;
Ответ №2:
Если вы пытаетесь посетить корневой URL, т. Е. http://localhost:8081/
Тогда вам нужно написать код для обработки этого маршрута, в настоящее время ваш код обрабатывает только http://localhost:8081/admin/*
маршруты, поэтому, если это ошибка, создайте маршрут для корня.
в App.js файл —
APP.JS
// Módulos
const express = require('express');
const handlebars = require('express-handlebars');
const bodyparser = require('body-parser');
const app = express()
const admin = require('./routes/admin.js');
// const mongoose = require('mongoose');
// Config
// Body Parser
app.use(bodyparser.urlencoded({extended:true}));
app.use(bodyparser.json());
//Handlebars
app.engine('handlebars', handlebars({defaltLayout: 'main'}));
app.set('view engine','handlebars');
//Mongoose
//Rotas
//here is the code to handle the root route
app.get('/',(req, res)=>{
res.send("this is the homepage");
});
app.use('/admin',admin);
//Outros
const PORT = 8081;
app.listen(PORT, () => {
console.log('Servidor Rodando');
})
Комментарии:
1. Все маршруты определены в admin.js файл
2. @EntonyMaxwell когда вы используете app.use(‘/ admin’, admin); значение этой строки заключается в том, что все запросы, начинающиеся с localhost:port / admin, будут отправляться на ваш маршрут внутри admin.js поэтому, если вы используете app.get(‘/’, обратный вызов) внутри вашего admin.js значението есть он будет обрабатывать каждый запрос с помощью localhost:port / admin / not localhost:port/