繁体   English   中英

找不到params 404的路线

[英]route with params 404 not found

我需要一些帮助,因为我在这个阶段后退出了,我试图用params路由但是之后我失去了如何加载页面到这个url localhost:3000 / dist / 16783之后当页面路由它说404找不到。 我需要一些帮助,如何在此之后导航到新页面,ID为“16783”,表格中包含值:跟踪没有“16783”或在同一页面上加载视图。

router.get('/dist/:awb', function (req, res, next) {
    res.render('dist', {
        AWB_NO: req.params.awb
    })
});

它没有呈现页面“dist”,这个问题可以与这个路由中的jade参数从一个页面到另一个页面

编辑:结构:

views:
   index.ejs
   track.ejs
   dist.ejs
routes:
   index.js
   track.js
   dist.js
app.js
package.json

app.js:

var indexRouter = require('./routes/index');
var trackRouter = require('./routes/track');
var distRouter = require('./routes/dist');

app.use('/', indexRouter);
app.use('/track', trackRouter);
app.use('/dist',distRouter);

track.ejs

表格列AWB没有链接到dist页面

 a.name(href="/dist/" + AWB_NO) #{AWB_NO}
            div
              td.min(data-label="Name") #{Product_Name}
              td.min(data-label="file") #{PCS}
              td.min(data-label="s_name") #{Weight}
              td.min(data-label="r_name") #{Gross_Weight}
              td.min(data-label="Date") #{DOP}
              td.min(data-label="Date") #{DOE}

所以这是实际的问题,因为当我在这个链接到“dist”页面的列“AWBNO”中有价值时。 现在当我点击它的传递参数到url dist / 16783,但什么都没有加载

路线:

track.js

router.get('/', function(req, res, next) {
res.send('respond with a resource');

dist.js

var express = require('express');
var router = express.Router();
router.get('/', function (req, res, next) {
    res.render('dist.ejs');
});

router.get('/:awb', function (req, res, next) {
    res.render('dist.ejs', {
        AWB_NO: req.params.awb
    })
});

新更新:

index.ejs

  <tr>
        <td class="id"><a href="/dist">1687952</a></td>
        <td>Tuna Fish</td>
        <td>DHL</td>
        <td>Germany</td>
      </tr>

index.js

router.get('/', function (req, res, next) {

    connection.query('SELECT * FROM orders', function (err, rows) {

        if (err) {
            req.flash('error', err);
            res.render('index', { page_title: "index - Node.js", data: '' });
        } else {

            res.render('index', { page_title: "index - Node.js", data: rows });

        }


    });
});

dist.ejs

<li class="list-inline-item">AWB Nummber:<%= AWB_NO %></li> &nbsp;

dist.js

router.get('/', function (req, res, next) {

    connection.query('SELECT * FROM deliveries', function (err, rows) {

        if (err) {
            req.flash('error', err);
            res.render('dist', { page_title: "dist - Node.js", data: '' });
        } else {

            res.render('dist', { page_title: "dist - Node.js", data: rows });

        }


    });
    router.get('/dist/:awb', function (req, res) {
        res.render('dist', {
            AWB_NO: req.params.awb
        })
    });
});

错误:

ReferenceError: E:\Dev\admeghbalim\YinSeafood\YinSeafood\expressfirst\views\dist.ejs:20
    18|             <h3>Distributor information</h3><br>&nbsp;
    19|             <ul class="list-inline">
 >> 20|                 <li class="list-inline-item">AWB Nummber:<%= AWB_NO %></li> &nbsp;
    21|                 <li class="list-inline-item">Country:</li>&nbsp;
    22|                 <li class="list-inline-item">Date:</li>&nbsp;
    23|                 <li class="list-inline-item">Sender:</li>&nbsp;

AWB_NO is not defined

我认为这里的路线可能与您在快速基础配置中设置的路线有关。

如果你的app.js中有这样的东西

var express = require("express");

var app = express();
app.use('/dist', require("./routes/dist"));
//Set the view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

而你的dist.js有一条路线

router.get('/dist/:awb', function (req, res, next) {
    res.render('dist', {
        AWB_NO: req.params.awb
    })
});

你的路线将是有效的

本地主机:3000 /距离/距离/ 16783

因为路径是相对于app.use的根路径。 在这种情况下,你的路径应该是

router.get('/', function (req, res, next) {
    res.render('dist');
});

router.get('/:awb', function (req, res, next) {
    res.render('dist', {
        AWB_NO: req.params.awb
    })
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM