为什么我的子页面在nodej中不可见?

ehxuflar  于 2023-02-03  发布在  Node.js
关注(0)|答案(1)|浏览(104)

我正在为我的网站做一个简单的节点应用程序。我已经配置了我的app.js,控制器和路由器。我的问题是我一直在三个子页面中的两个上得到错误404,索引工作也很好。我认为它们在结构上几乎是一样的,我试过跟踪应用程序路由控制器,但对我来说似乎不错。
我的控制台输出:

GET / 304 1.443 ms - -
GET /css/style.css 304 0.325 ms - -
GET /images/IMG_2202.png 304 0.639 ms - -
GET /images/vertabelo-tabele.png 304 0.774 ms - -

GET /sprzet 200 1.904 ms - 3241
GET /css/style.css 304 0.393 ms - -
GET /images/IMG_2202.png 304 0.501 ms - -

GET /zamowienia 404 1.152 ms - 1393

GET /wysylka 404 0.917 ms - 1393

正如您所看到的,/zamowienia/wysylka没有找到,但是结构与sprzet相同。
我的应用程序. js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
const sprzetRouter = require('./routes/sprzetRoute');
const wysylkaRouter = require('./routes/wysylkaRoute');
const zamowieniaRouter = require('./routes/zamowieniaRoute');
var app = express();

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

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/sprzet', sprzetRouter);
app.use('/list-wys', wysylkaRouter);
app.use('/list', zamowieniaRouter);

// catch 404 and forward to error handler
app.use(function (req, res, next) {
  next(createError(404));
});

// error handler
app.use(function (err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

威悉卡路线

const express = require('express');
const router = express.Router();

const wysylkaController = require('../controllers/wysylkaController');

router.get('/', wysylkaController.showWysylkaList);
router.get('/add', wysylkaController.showAddWysylkaForm);
router.get('/details/:wysId', wysylkaController.showWysylkaDetails);

module.exports = router;

和wysylka控制器

const { Router } = require("express");

exports.showWysylkaList = (req, res, next) => {
    res.render('pages/wysylka/list-wys', {
        navLocation: 'wys'
    });
}

exports.showAddWysylkaForm = (req, res, next) => {
    res.render('pages/wysylka/form-wys', {
        navLocation: 'wys'
    });
}

exports.showWysylkaDetails = (req, res, next) => {
    res.render('pages/wysylka/list-wys-details', {
        navLocation: 'wys'
    });
}

我的nav看起来也不错:

<nav>
<ul>
<li><a href="/" class="<%= navLocation == 'main' ? 'active' : ''%>">Strona główna</a></li>
<li><a href="/zamowienia" class="<%= navLocation == 'zam' ? 'active' : ''%>">Zamówienia</a></li>
<li><a href="/sprzet" class="<%= navLocation == 'sprz' ? 'active' : ''%>">Sprzęt</a></li>
<li><a href="/wysylka" class="<%= navLocation == 'wys' ? 'active' : ''%>">Wysylka</a></li>
</ul>
</nav>

我试过回溯所有路径,并将/wysylka/zamowienia/sprzet进行比较,但它们似乎都是以相同的方式构建的。

qqrboqgw

qqrboqgw1#

问题是app.js中的端点错误。
我不得不换了这个:

app.use('/', indexRouter);
app.use('/sprzet', sprzetRouter);
app.use('/list-wys', wysylkaRouter);
app.use('/list', zamowieniaRouter);

对此:

app.use('/', indexRouter);
app.use('/sprzet', sprzetRouter);
app.use('/wysylka', wysylkaRouter);
app.use('/zamowienia', zamowieniaRouter);

使端点指向子文件夹而非特定文件。

相关问题