Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在主html文件本身中显示节点错误_Javascript_Html_Node.js - Fatal编程技术网

Javascript 在主html文件本身中显示节点错误

Javascript 在主html文件本身中显示节点错误,javascript,html,node.js,Javascript,Html,Node.js,我用NodeJs做了一个表单,我做了一些输入验证,当用户输入错误的值时会显示错误,这里的问题是错误会出现在一个新的空白页上,但我需要错误以很酷的样式出现在主html文件本身上 这是现场直播 我试着在同一条路线上发出post请求,看看错误是否会出现在同一页上,但该页变成了白色空白页,里面有文本 app.post('/',函数(req,res){ const SchemaValidation={ 名称:joi.string().min(4).required().error(()=>{ 返回{ 消息

我用NodeJs做了一个表单,我做了一些输入验证,当用户输入错误的值时会显示错误,这里的问题是错误会出现在一个新的空白页上,但我需要错误以很酷的样式出现在主html文件本身上 这是现场直播

我试着在同一条路线上发出post请求,看看错误是否会出现在同一页上,但该页变成了白色空白页,里面有文本

app.post('/',函数(req,res){
const SchemaValidation={
名称:joi.string().min(4).required().error(()=>{
返回{
消息:“需要名称。(最小:4个字符)”,
};
}),
电子邮件:joi.string().email().error(()=>{
返回{
消息:“电子邮件字段不能为空”,
};
}),
电话:joi.string().min(8).max(14).required().error(()=>{
返回{
消息:“需要有效的电话号码(最少8个字符-最多14个字符)”,
};
}),
大学:joi.string().required()。错误(()=>{
返回{
消息:“大学字段为必填项”,
};
}),
教员:joi.string().required().error(()=>{
返回{
消息:“教员字段为必填项”,
};
}),
学年:joi.string().required()。错误(()=>{
返回{
信息:“学年字段为必填字段,范围为1-6”,
};
}),
研讨会:joi.array()
.items(joi.string()。错误(()=>{
返回{
信息:“你应该找两个委员会”,
};
})),
第一个选项:joi.string().required().error(()=>{
返回{
信息:“你应该选择第一选择”,
};
}),
第二个选项:joi.string().required().error(()=>{
返回{
信息:“你应该选择第二选择”,
};
}),
};
joi.validate(请求主体、SchemaValidation,(错误、结果)=>{
如果(错误){
res.send(`p style='color:red;text align:center;margin top:20px;'>${err.details[0]。message}

`); return;//如果架构无效,请不要尝试保存到db } 其他的 res.send(`

已成功发布数据

`); }) });

我所需要的只是在同一页面中显示错误并阻止提交..

为了解决这个问题,我强烈建议您使用Pug.js(模板引擎),因为您无法将参数传递到特定页面。通过使用模板引擎,您可以将数据作为对象传递,并使用res.render('index',{error:res.error.message})呈现它们

您将能够从服务器端将错误对象输出到页面中,显示您需要显示的任何内容

res.send('content')基本上是一个文档


在提交表单之前,您是否有理由不能在前端进行验证?这通常是首选的方式。您可以进行一些后端验证,这样就不会将坏数据输入数据库,但一旦发送请求,您就需要发送回响应,在您的情况下,响应是消息,而不是整个HTML页面。您可以通过向提交按钮添加事件侦听器来创建验证,然后在验证后使用Ajax将数据发送到后端,或者您可以使用Bootstrap的内置验证,而不只是通过表单操作来干扰Ajax

嗯,你说得对。。现在我使用了swig模板引擎,它在同一个页面中显示错误,但在重新加载之后。。我需要在不重新加载页面的情况下显示错误。。可能吗?你能提供一个代码吗?我不太擅长,但我会尽力帮助你的<代码>如果(err){res.render('index',{output:'${err.details[0].message}}});返回;//如果架构无效,不要尝试保存到db}这是一个示例。。当它发现错误时,会重新加载页面并在页面顶部显示错误