2016-05-28 3 views
0

Я пытаюсь сделать страницу, которая только что получает запрос на получение из моего файла index.js и просто отображает «hello user». Я создал файл user.ejs в своем экспресс-приложении, которое просто выводит строку из файла 'users.js'. В моем файле index.ejs есть форма, которая перенаправляется в каталог моих пользователей. Файл индекса работает хорошо, когда я набираю каталог «/» в поле url, но по какой-то причине файл бросает 404 не найденную ошибку в браузере, когда я нажимаю submit на форме на первой странице, users.ejs ', может ли кто-нибудь сказать мне, почему он это делает?Почему каталог, бросающий 404 при рендеринге ejs

index.ejs

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <title><%= title %></title> 
 
    <link rel='stylesheet' href='/stylesheets/style.css' /> 
 
    </head> 
 
    <body> 
 
    <h1><%= title %></h1> 
 
    <p>Welcome to <%= title %></p><br> 
 

 
    <form action='/users' method='get'> 
 
     Enter Name: <input type='text' name='thetext'></input><br><br> 
 
     <input type='submit' id='checkresponse'>enter</button> 
 
    </form> 
 
    
 
    <script type = 'text/javascript' src = '/dist/jquery.js'></script> 
 
    <script type = 'text/javascript' src = '/js/response.js'></script> 
 
    </body> 
 
</html>

index.js

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

 
/* GET home page. */ 
 
router.get('/', function(req, res, next) { 
 
    res.render('index', { title: 'Expr-Ass' }); 
 
}); 
 

 
module.exports = router;

users.js

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

 
/* GET users listing. */ 
 
router.get('/users', function(req, res, next) { 
 
    res.render('users', {star:'Sparksiano'}); 
 
}); 
 

 
module.exports = router;

users.ejs

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <title><%= star %></title> 
 
    <link rel='stylesheet' href='/stylesheets/style.css' /> 
 
    </head> 
 
    <body> 
 
    <h1>Welcome user!</h1> 
 
    
 
    </body> 
 
</html>

ответ

1

Основе комментариев ниже, вы можете попробовать что-то вроде этого:

users.js

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

/* Notice the path change */ 
router.get('/', function(req, res, next) { 
    res.render('users', {star:'Sparksiano'}); 
}); 

module.exports = router; 

Похоже, что вы можете установить свой путь, чтобы включить пользователя/пользователя, а затем иметь маршрут, который имеет путь/пользователей. Было бы легче устранить неполадки, если бы вы разместили остальную часть кода на стороне сервера.

+0

Да, я установил механизм просмотра в ejs в app.js – Sparksido

+0

Можете ли вы подтвердить, что вас отправили на правильный URL? Вы не показываете код, на котором вы устанавливаете свой экспресс-маршрутизатор. Но вы отправляетесь на localhost: порт/пользователи и правильно монтируете маршрутизатор. – user2263572

+0

У меня есть следующие строки, направляющие файлы моего маршрутизатора _italic_ ** bold ** 'app.use ('/', маршруты); app.use ('/ users', users); ' – Sparksido

0

я помещаю различные EJs файлы в папке, а затем указать экспресс-маршрутизатор, чтобы использовать эту папку в качестве пути:

var app = express(); 

app.set('port', 6000); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs'); 

Тогда я направлять их на эти страницы:

app.get('/', function (req, res) { 
    res.render('index', {title: 'Express'}); 
}); 

app.get('/users', function (req, res) { 
    res.render('users', {star:'Sparksiano'}); 
}); 

Make убедитесь, что страница users.ejs находится в одной папке.

Смежные вопросы