Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 在Express中发布表单后,如何在URL中显示用户名?_Javascript_Node.js_Express_Url_Post - Fatal编程技术网

Javascript 在Express中发布表单后,如何在URL中显示用户名?

Javascript 在Express中发布表单后,如何在URL中显示用户名?,javascript,node.js,express,url,post,Javascript,Node.js,Express,Url,Post,Im使用Express框架和mysql数据库。 我想在发布登录表单后,在url中显示数据库用户名,如“localhost:1001/Home/Jay” 我尝试了GET方法,但在GET方法中,如果键入“localhost:1001/Home/Jay”,则在会话中以及url中的登录页面中,我会在主页中重定向它,而不显示我必须登录 这是routes文件夹中的my user.js文件 const express = require('express'); const mysql = require('m

Im使用Express框架和mysql数据库。 我想在发布登录表单后,在url中显示数据库用户名,如“localhost:1001/Home/Jay”

我尝试了GET方法,但在GET方法中,如果键入“localhost:1001/Home/Jay”,则在会话中以及url中的登录页面中,我会在主页中重定向它,而不显示我必须登录

这是routes文件夹中的my user.js文件

const express = require('express');
const mysql = require('mysql');
const bcryptjs = require('bcryptjs')
const salt = bcryptjs.genSaltSync(10);

const app = express();

var connection = mysql.createConnection({
    host:     'localhost',  // database host
    user:     'root',       // your database username
    password: 'URU143JAY',      // your database password
    port:     '1001',       // default MySQL port
    database:     'jay'
});


app.get('/login', (req, res) =>  res.render('login'));

app.post('/login', function(req, res, next){
    const name = req.body.name;
    const pass = req.body.pass;

    let errors = [];

    if(name == ''){
        errors.push({ msg: 'Please Enter Name' });
    }

    if(pass == ''){
        errors.push({ msg: 'Please Enter Password' });
    }

    req.getConnection(function(err, connection){
    connection.query("SELECT * FROM App WHERE name = '"+ name +"' ", function(err, rows, fields){
        console.log(rows[0].password);
        if(bcryptjs.compareSync(req.body.pass, rows[0].password)){
            console.log('Login');
        }else{
            errors.push({ msg: 'Wrong Password' });
        }
        if(err){
            console.log(err);
        }else{
            if(rows.length <= 0){
                    errors.push({ msg: 'Wrong Username' });
            }   
        }
        if(errors.length > 0){
            res.render('login',{
                errors,
                name,
                pass
            });
        }else{
            res.render('Home', { name: name});
        }
    });
    });
});

app.get('/Home', (req, res) => {
    res.render('Home', { name: name });
 });    

app.get('/logout', function(req, res){
    res.render('login');
});

module.exports = app;
const express=require('express');
const mysql=require('mysql');
const bcryptjs=require('bcryptjs')
const salt=bcryptjs.genSaltSync(10);
常量app=express();
var connection=mysql.createConnection({
主机:'localhost',//数据库主机
用户:'根',//您的数据库用户名
密码:“URU143JAY”,//您的数据库密码
端口:“1001”,//默认MySQL端口
数据库:“jay”
});
app.get('/login',(req,res)=>res.render('login');
app.post('/login',函数(req,res,next){
const name=req.body.name;
const pass=req.body.pass;
让错误=[];
如果(名称=“”){
错误。推送({msg:'请输入名称'});
}
如果(通过=“”){
错误。推送({msg:'请输入密码'});
}
请求getConnection(函数(错误,连接){
connection.query(“从应用程序中选择*,其中name=”+name+“”,函数(err、行、字段){
console.log(行[0]。密码);
if(bcryptjs.compareSync(req.body.pass,行[0]。密码)){
log('Login');
}否则{
错误。推送({msg:'错误密码'});
}
如果(错误){
控制台日志(err);
}否则{
如果(行数0.0){
res.render('login'{
错误,
名称
通过
});
}否则{
res.render('Home',{name:name});
}
});
});
});
app.get('/Home',(请求,res)=>{
res.render('Home',{name:name});
});    
app.get('/logout',函数(req,res){
res.render(“登录”);
});
module.exports=app;
这是登录表单login.ejs

    <form method="POST" class="register-form" id="login-form">
<div class="form-group">
<label for="your_name"><i class="zmdi zmdi-account material-icons-name"></i></label>
<input type="text" name="name" id="your_name" placeholder="Your Name" value="<%= typeof name != 'undefined' ? name : '' %>" />
</div>
<div class="form-group">
<label for="your_pass"><i class="zmdi zmdi-lock"></i></label>
<input type="password" name="pass" id="your_pass" placeholder="Password" value="<%= typeof pass != 'undefined' ? pass : '' %>" />
</div>
<div class="form-group form-button">
<input type="submit" name="signin" id="signin" class="form-submit" value="Log in" />
</div>
</form>

您必须使URL路径动态:

app.get('/Home/:id', function(req, res){
   // render your dynamic template here
   console.log(req.params.id)
});
因此呈现:“localhost:1001/Home/Jay”
在这里可以查看更多路由示例的更多文档:

其显示在登录@siteDefenders后无法回家您必须在登录后映射您的路由,有人问了一个类似的问题:app.get('Home/:name',function(req,res){console.log(req.params.name);res.render('Home',{name:name};});我像这样使用get页面,但它仍然显示无法在@siteDefenders上获得主页。登录时,您必须像这样映射路径:app.use(“/Home/”,“my_path”);