为什么目录在渲染ejs时抛出404

Why is the directory throwing 404 when rendering ejs

我正在尝试制作一个页面,该页面仅从我的 index.js 文件接收获取请求并仅显示 "hello user"。我在我的 express 应用程序中创建了一个 'users.ejs' 文件,它只从 'users.js' 文件中呈现一个字符串。我的 index.ejs 文件中有一个表单重定向到我的用户目录。当我在 url 框中键入“/”目录时,索引文件运行良好,但由于某种原因,当我在第一页的表单上点击提交时,该文件在浏览器中抛出 404 未找到错误显示 'users.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>

根据下面的评论,您可能想尝试这样的事情:

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;

听起来您可能正在安装路径以包含 /users,然后有一个包含 /users 路径的路由。如果您发布服务器端代码的其余部分,将更容易进行故障排除。

我将各种 ejs 文件放在一个文件夹中,然后指向 express 路由器使用该文件夹作为路径:

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'});
});

确保 users.ejs 页面位于同一文件夹中。