NodeJs路由不在内页中工作

时间:2018-02-15 11:24:44

标签: node.js express routing

我正在尝试使用express框架在NodeJs中开发一个应用程序。当我从家里导航到内页时,我的路由工作正常。但是,如果我想从某个内页导航到主页,那么它就无法正常工作。

以下是我的app.js代码。

const express = require('express');
const path = require('path');
const engines = require('consolidate');
const bodyParser = require('body-parser');

//declare all routers
var home = require(path.join(__dirname, "/routes/index"));
var myaccount = require(path.join(__dirname, "/routes/myaccount"));

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.engine('html', engines.handlebars);
var defaultViewPath = path.join(__dirname, "/views");
app.set('views', defaultViewPath);
app.set('view engine', 'html');

app.use('/', home);
app.use('/myaccount', myaccount);

如果我从家里导航到myaccount - 它的工作 但是,如果我从myaacount导航到家 - 它会重新加载相同的页面。

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

使用app.getapp.post路线方法

app.get('/',function(req,res){ 
 res.render('home');
});

app.get('/myaccount',function(req,res){      
  res.render('myaccount');
});

或为家庭创建路由器文件&我的帐户

var express = require('express')
var router = express.Router()


router.get('/', function (req, res) {
  res.send('Home Page')
})

module.exports = router

在您的app.jsindex.js文件中,需要route.js

var home = require('./route');
app.use('/', home)

答案 1 :(得分:0)

要使用 Express 应用对象的方法定义路由,请使用app.get()来处理GET请求

var express = require('express')
var app = express()

// When GET request is made to the homepage
app.get('/', function (req, res) {
  res.render('home');
});

// When GET request is made to the myaccount
app.get('/myaccount', function (req, res) {
  res.render('myaccount');
});

app.get('/myaccount/innerpage', function (req, res) {
  res.send('Hello Inner Page');
});

//Page Not Found
app.use(function(req, res){
    //render the html page
    //res.render('404');
    res.sendStatus(404);
});

希望这可以帮到你