- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在正在处理的应用程序上使用带有 Node 的express.js 时遇到路由错误。我无法正确处理 post 请求,并收到 http 500 错误,这是我的 server.js 文件代码
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
var expressValidator = require('express-validator');
app.use(expressValidator());
var router = express.Router();
app.use(router);
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
var methodOverride = require('method-override');
app.use(methodOverride(function (req, res) {
if (req.body && typeof req.body === 'object' && '_method' in req.body) {
var method = req.body._method;
delete req.body._method;
return method
}
}));
var flash = require('express-flash');
var cookieParser = require('cookie-parser');
var session = require('express-session');
app.use(cookieParser('csci3308'));
app.use(session({
secret: 'csci3308',
resave: false,
saveUninitialized: true,
cookie: {maxAge: 60000}
}));
app.use(flash());
var login = require('./routes/login');
var success = require('./routes/success');
var profileCreation = require('./routes/profileCreation');
var calendar = require('./routes/calendar');
var student = require('./routes/student');
var professor = require('./routes/professor');
app.use(express.static('public'));
app.use('/', login);
app.use('/login', login);
app.use('/success', success);
app.use('/profileCreation', profileCreation);
app.use('/calendar', calendar);
app.use('/student', student);
app.use('/professor', professor);
//error handling
app.use((req, res, next) => {
console.log(req.url)
console.log(req.method)
console.log(req.params)
console.log(req.body)
res.status(404).send("Sorry can't find that!")
})
app.use((err, req, res, next) =>{
console.error(err.stack)
res.status(500).send('Something broke!')
})
var port = 4000;
app.listen(port, function () {
console.log('Server running on http://localhost:' + port)
});
这是我的 profileCreation.js 代码
var express = require('express');
var router = express.Router();
var expressValidator = require('express-validator');
router.use(expressValidator());
const { check } = require('express-validator/check');
var db = require('../database.js');
router.post('/profileCreation', function(request, response){
console.log("made it to profileCreation post route")
response.redirect('/login')
//request.assert('email', 'email is required').notEmpty();
// request.assert('pswd', 'password is required').notEmpty();
// request.assert('cfmPswd', 'confirm password is required').notEmpty();
// request.assert('pswd', 'password and confirm password are not the same').equals('cfmPswd');
// var queryCheckEmailNotTaken = 'select (email) from users where(email = $1)';
// if(db.oneOrNone(queryCheckEmailNotTaken, 'email')=== null){
// //make eroor message
// request.flash('error', 'Creation failed');
// response.render('profileCreation');
// }
// else{
// var isProf = document.getElementById("isProfessor").checked;
// //var dbQueryAddUserString = 'Insert into users(email, pswd, isProffessor) values(request.sanitize('email'), request.sanitize('pswd'), isProf;
// var dbQueryAddUserString = 'Insert into users(email, pswdID, isProffessor) values($1, $2, $3)';
// db.none(dbQueryAddUserString, [email,pswd, isProf]).then(
// response.render('login')
// ).catch(function(error){
// request.flash('error', 'Creation failed');
// response.render('profileCreation');
// })
// }
});
router.get('/', function (request, response) {
console.log('Made it to profile creation root route');
response.render('profileCreation', {data: {}});
});
router.get('/profileCreation', function(request, response){
console.log('Made it to profileCreation route');
response.render('profileCreation');
});
module.exports = router;
这是我的 profileCreation.ejs 代码
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="/profileCreation.css" type=text/css>
<title>Profile Creation Page</title>
</head>
<body>
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="wrapper" id="rootContainer">
<div class="container" id="outerBoxContainer">
<div class="container" id="contentContainer">
<div class="container" id="titleContainer">
<div class="row justify-content-center" id="titleRow">
<h1 id="loginHeader">DayBook Profile Creation</h1>
</div>
</div>
<div class="container" id="profileContainer">
<form method="post" action="/profileCreation">
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" id="email" placeholder="Email">
</div>
<div class="form-group">
<label for="passwrd">Password</label>
<input type="password" class="form-control" name="pswd" id="passwrd" placeholder="Password">
</div>
<div class="form-group">
<label for="cfmPasswrd">Confirm Password</label>
<input type="password" class="form-control" name="cfmPswd" id="cfmPasswrd" placeholder="Confirm Password">
</div>
<!-- <div class="radio">
<label>Role</label>
<br>
<label style="font-weight:normal"><input type="radio">Student</label>
<br>
<label style="font-weight:normal"><input type="radio">Professor</label>
<br>
</div> -->
<button type="submit" name="createProfileButton" >Create Profile</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
当我尝试在配置文件创建路径上使用提交按钮时,收到 500 错误。我不知道是什么问题。这就像路由器没有正确定义处理 post 请求的路由。我使用与登录功能相同的公式,但由于某种原因它不起作用。本地服务器表示无法发布到路由。请帮我。我很感激任何反馈。我是这方面的业余爱好者,认为这可能只是某个地方的一个小错误。先感谢您!
最佳答案
您可以尝试使用访问
BASE_URL + 'profileCreation/profileCreation'
注意:将 BASE_URL 替换为您的实际基本 URL
关于html - Express 正确定义 post 路由方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718227/
这个问题已经有答案了: How to do case insensitive string comparison? (23 个回答) 已关闭 3 年前。 用户在我的输入栏中写入“足球”,然后执行第 6
啊,不习惯 javascript 中的字符串。 character_id= + id + correct= + correctOrIncorrect 这就是我需要制作成字符串的内容。如果您无法猜测字符
$(function() { var base_price = 0; CalculatePrice(); $(".math1").on('change', function(e) { Calc
我找不到任何文章回答问题:将Spinnaker部署到Spinnaker将管理的同一Kubernetes集群是否安全/正确?我主要是指生产,HA部署。 最佳答案 我认为Spinnaker和Kuberne
我正在使用MSVC在Windows上从源代码(官方源代码发布,而不是从仓库中)构建Qt5(Qt 5.15.0)。 我正在设置环境。变量,依赖项等,然后运行具有1600万个选项的configure,最后
我需要打印一个包含重复单词的数组。我的数组已经可以工作,但我不知道如何正确计算单词数。我已经知道,当我的索引计数器 (i) 为 49 时,并且当 (i) 想要计数到 50 时,我会收到错误,但我不知道
我正在遵循一个指南,该指南允许 Google map 屏幕根据屏幕尺寸禁用滚动。我唯一挣扎的部分是编写一个代码,当我手动调整屏幕大小时动态更改 True/False 值。 这是我按照说明操作的网站,但
我有一个类“FileButton”。它的目的是将文件链接到 JButton,FileButton 继承自 JButton。子类继承自此以使用链接到按钮的文件做有用的事情。 JingleCardButt
我的 friend 数组只返回一个数字而不是所有数字。 ($myfriends = 3) 应该是…… ($myfriends = 3 5 7 8 9 12). 如果我让它进入 while 循环……整个
这个问题在这里已经有了答案: Is there a workaround to make CSS classes with names that start with numbers valid?
我正在制作一个 JavaScript 函数,当调整窗口大小时,它会自动将 div 的大小调整为与窗口相同的宽度/高度。 该功能非常基本,但我注意到在调整窗口大小时出现明显的“绘制”滞后。在 JS fi
此问题的基本视觉效果可在 http://sevenx.de/demo/bootstrap-carousel/inc.carousel/tabbed-slider.html 获得。 - 如果你想看一看。
我明白,如果我想从函数返回一个字符串文字或一个数组,我应该将其声明为静态的,这样当被调用的函数被返回时,内容就不会“消亡”。 但我的问题是,当我在函数内部使用 malloc 分配内存时会怎样? 在下面
在 mySQL 数据库中存储 true/false/1/0 值最合适(读取数据消耗最少)的数据字段是什么? 我以前使用过一个字符长的 tinyint,但我不确定它是否是最佳解决方案? 谢谢! 最佳答案
我想一次读取并处理CSV文件第一行中的条目(例如打印)。我假设使用Unix风格的\n换行符,没有条目长度超过255个字符,并且(现在)在EOF之前有一个换行符。这意味着它是fgets()后跟strto
所以,我们都知道 -1 > 2u == true 的 C/C++ 有符号/无符号比较规则,并且我有一种情况,我想有效地实现“正确”比较。 我的问题是,考虑到人们熟悉的尽可能多的架构,哪种方法更有效。显
**摘要:**文章的标题看似自相矛盾。 本文分享自华为云社区《Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序》,作者: Jerry Wang 。 文章的标题看似自相矛盾,然而我在“正
我有一个数据框,看起来像: dataDemo % mutate_each(funs(ifelse(. == '.', REF, as.character(.))), -POS) # POS REF
有人可以帮助我使用 VBScript 重新格式化/正确格式化带分隔符的文本文件吗? 我有一个文本文件 ^分界如下: AGREE^NAME^ADD1^ADD2^ADD3^ADD4^PCODE^BAL^A
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!