мой код узла находится в цикле загрузки, когда я ввожу местоположение хоста

#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/