node.js - 错误:无法查找视图“感谢您加入我们的等候名单!” 在视图目录“C:\Users\mchio\JoinUs\views”中
问题描述
我是一名学习 Node.js 的学生。我需要帮助修复 Express 中的此查找错误。请注意,代码按预期工作,这意味着,它获取新用户的电子邮件地址,更新 MySQL DB,然后增加 UI 计数器。
问题是,它返回成功的“感谢您加入我们的等待列表”和“错误:无法查找视图...”错误消息。
我花了几个小时梳理 stackoverflow 和其他网站寻求帮助,但成功了。这是我第一次在这里发帖,请帮忙。谢谢!
我的代码:app.js
var express = require('express');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var app = express();
var path = require('path');
app.set('views', path.join(__dirname, 'views'));
app.engine('ejs', require('ejs').renderFile);
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res){
var q = "SELECT COUNT(*) AS count FROM users";
connection.query(q, function (err, results){
if (err) throw err;
var count = results[0].count;
res.render('home', {counter: count});
});
});
app.post("/register", function(req, res){
var newuser = {
email: req.body.email
};
connection.query('INSERT INTO users SET ?', newuser, function (err, results){
if (err) throw err;
res.render("Thank you for joining our wait list!");
});
});
应用目录结构:
C:\Users\mchio\JoinUs
\node_modules(文件夹)、app.js、package.json、package-lock.json(文件)
\views(文件夹)
|--home.ejs (文件) |
home.ejs 文件
<h1>Welcome to JoinUS.COM</h1>
<p>Please enter your email to join <strong><%=counter%></strong> others on our waitlist. We are a fun START UP focusing on AI. </p>
<form method="POST" action="/register">
<input type="text" name="email" class="form" placeholder="Enter Your Email">
<button>Join Now</button>
</form>`enter code here
解决方案
这是问题
res.render("Thank you for joining our wait list!");
所以你传递了错误的参数。它应该是 viewName。
因此,您可以在视图文件夹中传递 joinUs.ejs 文件。之后你可以做这样的事情
res.render('joinUs');
在您的代码中,当 nodeJs 找不到视图时,它会引发错误“无法查找视图”,如您所见。然后它将您在方法中传递的字符串返回到用户屏幕“感谢您加入我们的等待列表”。这就是为什么您同时有 2 个结果。
推荐阅读
- python - Python 3.7 版中是否存在 Isinstance?
- docker - 如何升级 pod securityContext runAsUser: 1010 的 kubernetes 容器权限
- javascript - 完整的日历未显示在 Web 表单上;脚本未运行
- angular - Angular 9 升级在编译期间导致 @types 错误
- gcc - 未对齐的向量指针异常 (AVX512)
- node.js - npm 错误!在“...ttps://registry.npmjs”附近解析时 JSON 输入意外结束
- typescript - 通过 LSP 扩展中的 CodeLens 请求发送参数
- scala - 未从 Web 客户端发送或接收到 Web 套接字的消息
- r-markdown - Rmarkdown 中的引用:使用 .bib 文件中的标题大写
- c# - 资源管理器获取默认语言和只有一种文化特定的翻译,每种文化都返回英语