简体   繁体   English

找不到params 404的路线

[英]route with params 404 not found

I would need some help as i am quit lost after this stage, i am trying to route with params but after that i am lost how to load page to this url localhost:3000/dist/16783 after when page route it says 404 not found. 我需要一些帮助,因为我在这个阶段后退出了,我试图用params路由但是之后我失去了如何加载页面到这个url localhost:3000 / dist / 16783之后当页面路由它说404找不到。 I would need some help how can i navigate to new page after this with id "16783" with values inside the table ex: tracking no "16783" or load view on the same page. 我需要一些帮助,如何在此之后导航到新页面,ID为“16783”,表格中包含值:跟踪没有“16783”或在同一页面上加载视图。

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

It is not rendering the page "dist", this question can related to this Routing with parameters in jade from one page to another 它没有呈现页面“dist”,这个问题可以与这个路由中的jade参数从一个页面到另一个页面

EDIT: Structure: 编辑:结构:

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

app.js: 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 track.ejs

table column AWB NO link to dist page 表格列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}

So here is the actual problem, as when i have value inside this column "AWBNO" which link to "dist" page. 所以这是实际的问题,因为当我在这个链接到“dist”页面的列“AWBNO”中有价值时。 Now when i click its passing params to url dist/16783, but nothing is loading 现在当我点击它的传递参数到url dist / 16783,但什么都没有加载

routes: 路线:

track.js track.js

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

dist.js 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
    })
});

New Update: 新更新:

index.ejs 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 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 dist.ejs

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

dist.js 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
        })
    });
});

Error: 错误:

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

I think the route here might be relative to the route you may have set in the express base configuration. 我认为这里的路线可能与您在快速基础配置中设置的路线有关。

If you have have something like this in your app.js 如果你的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');

And your dist.js has a route 而你的dist.js有一条路线

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

Your route will effectively be 你的路线将是有效的

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

as the path is relative to your root path in app.use . 因为路径是相对于app.use的根路径。 In this case your path should be 在这种情况下,你的路径应该是

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