node.js - 尝试将页面添加到我的项目时,我在命令提示符下收到此错误 500
问题描述
因此,我正在尝试设置此 addpost 页面,并且在命令提示符下不断收到此“GET /posts/add 500 4.339 ms - 204”。
完整代码:https ://github.com/vnkvp/blog
感谢您的任何反馈
这是我的路由器/posts.js:
router.get('/add', (req, res, next)=>{
res.render('addpost', {
'title':'Add post'
});
});
module.exports = router;
这是我的 app.js:
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use((req, res, next)=>{
req.db = db;
next();
});
app.use('/', indexRouter);
app.use('/posts', postsRouter);
//捕获404并转发到错误处理程序
app.use(function (req, res, next) {
next(createError(404));
});
//error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
//render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
addpost.ejs 文件
<html>
<body>
<div class="container">
<h1>title</h1>
<ul class="errors">
<% if(errors) { %>
<% for (var i = 0; i < errors.length;i++) { %>
<li><%= errors[i].msg %></li>
<% } %>
<% } %>
</ul>
<form method="POST" action="/posts/add" enctype="multipart/form-data">
<div class="form">
<label>Title:</label>
<input type="text" name="title">
</div>
<div class="form">
<label>Category</label>
<input type="text" name="title">
</div>
</form>
</div>
</body>
</html>
解决方案
在您的电话中res.render
res.render('addpost', {
'title':'Add post'
});
您正在将变量发送title
到您的 addpost.ejs 视图,但未title
在该视图中使用。该视图正在尝试使用一个名为 的数组errors
,但您尚未将该数组传递给该视图,因此以下操作将失败:
<% if(errors) { %>
<% for (var i = 0; i < errors.length;i++) { %>
<li><%= errors[i].msg %></li>
<% } %>
<% } %>
尝试这样的事情:
res.render('addpost', {
'title':'Add post',
'errors': ['test error1', 'test error2']
});
如果您可以在页面上看到这些测试错误,那么您只需要确保将正确的错误发送到您的视图。
推荐阅读
- node.js - 如何在nodeJS中显示来自firebase数据库的数据
- java - maven-compiler-plugin 无法编译 Eclipse 没有问题的文件
- react-native-ios - 从 git 克隆时找不到 CFBundleIdentifier
- angularjs - AngularJS数据表总是显示没有找到匹配的记录
- angular - 如何使用 Visual Studio Code 将在 Visual Studio 2015 中开发的 Angular 4 项目使用到 Angular 6?
- java - 如何将远程配置获取时间保持 15 分钟
- docusignapi - 有没有办法在签署文件时创建自定义签名?
- django - 尝试将本地 django 连接到 Amazon RDS MySQL 数据库时出现 2026 SSL 连接错误
- javascript - 我们如何检查一个机器人是否在您的不和谐服务器中与另一个机器人
- python - 我已经设置了所有的头信息,但我仍然无法获取数据