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) { %>
我目前正在为管理端开发一个带有 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) { %>