SyntaxError: Unexpected token '{' in __dirname\views\admin\users.ejs while compiling ejs

SyntaxError: Unexpected token '{' in __dirname\views\admin\users.ejs while compiling ejs

我目前正在为管理端开发一个带有 CRUD 操作的 nodejs 应用程序。这是我的 table 让管理员能够编辑所有用户。出于某种原因,我在我的 ejs 中收到意外标记“{”的错误,但我没有看到任何未闭合的括号或类似内容。我很困惑。如果您在这里看到问题,请告诉我。我开始认为错误与我的观点无关,而与我的代码无关。虽然我仍然没有在我的代码中发现任何问题,但希望新的一双眼睛能解决我的问题。

我的 ejs 文件:

<div class="card">
    <div class="card-header">
        <div class="row">
            <div class="col-8">
                <h4 class="font-weight-bold">Users</h4>
            </div>
        </div>
    </div>
    <div class="card-body">
        <table class="table table-hover">
            <thead class="table-dark">
                <tr>
                    <th scope="col">Name</th>
                    <th scope="col">Role</th>
                    <th scope="col">Content Creator</th>
                    <th scope="col">Email</th>
                    <th scope="col">Username</th>
                </tr>
            </thead>
            <tbody>
                <% if(users.length> 0 { %>
                    <% for (let user of users) { %>
                        <tr>
                            <th scope="row">
                                <%= user.name %>
                            </th>
                            <td>
                                <%= user.role %>
                            </td>
                            <td>
                                <%= user.platform %>
                            </td>
                            <td>
                                <%= user.email %>
                            </td>
                            <td>
                                <%= user.username %>
                            </td>
                            <td>
                                <a href="admin/update/<%= user._id %>" class="" btn btn-sm btn-warning>Update</a>
                                <a href="admin/delete/<%= user._id %>" class="" btn btn-sm btn-danger>Delete</a>
                            </td>
                        </tr>
                        <% } %>
                     <% } %>
            </tbody>
        </table>
    </div>
</div>
</div>

我的控制器:

const User = require('../models/User.model');

const getAllUsers = async (req, res) => {
    const list = await User.find().exec();
    res.render('admin/users', {
        users: list
    })
}


module.exports = { getAllUsers }

我的路线:

const express = require('express');
const router = express.Router();
const User = require('../models/User.model')
const { authRole, ensureAuthenticated, } = require('../config/auth');
const { getUser, getAllUsers, updateUser, deleteUser } = require('../controllers/user.Controller')
const { json } = require('express/lib/response');

router.get('/', ensureAuthenticated, authRole, (req, res) => {
    res.render('admin/admin')
})

router.get('/users', ensureAuthenticated, authRole, getAllUsers);

module.exports = router;

此外,在此处查看我正在使用的数据可能会有所帮助:

[
  {
    role: 'Admin',
    _id: 6217f3160f28e8d7aca39742,
    name: 'Matt',
    platform: 'Haze0_o',
    username: 'anemail@email.com',
    email: 'anemail@email.com',
    date: 2022-02-24T21:05:26.885Z,
    __v: 0
  },
  {
    role: 'User',
    _id: 6217f3482d1c8dbce051bb43,
    name: 'test3',
    platform: 'test3',
    username: 'test3',
    email: 'anemail@email.com',
    date: 2022-02-24T21:06:16.430Z,
    __v: 0
  },
  {
    role: 'User',
    _id: 62181fd5f85ed0b68c82f33b,
    name: 'Jackie',
    platform: 'a platform',
    username: 'a username',
    email: 'anemail@email.com',
    date: 2022-02-25T00:16:21.618Z,
    __v: 0
  }
]

您似乎有错字。您的 if 语句中缺少右括号。

这一行:

<% if(users.length> 0 { %>

应该是:

<% if(users.length> 0) { %>