Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 POST方法未插入到用户数组中_Javascript_Html_Node.js_Express - Fatal编程技术网

Javascript POST方法未插入到用户数组中

Javascript POST方法未插入到用户数组中,javascript,html,node.js,express,Javascript,Html,Node.js,Express,我试图弄明白为什么我的post方法不会将注册表单中创建的用户插入到我的用户数组中,并且节点中没有记录任何数组。单击注册按钮时,站点也不会重定向到/login页面。我不是在寻找确切的解决方案,也许只是一个提示,帮助我走上正确的道路。 (所有图书馆都是必需的) 我使用的POST方法 const express = require('express') const app = express() const bcrypt = require('bcrypt'); // helps finding sp

我试图弄明白为什么我的post方法不会将注册表单中创建的用户插入到我的用户数组中,并且节点中没有记录任何数组。单击注册按钮时,站点也不会重定向到/login页面。我不是在寻找确切的解决方案,也许只是一个提示,帮助我走上正确的道路。 (所有图书馆都是必需的)

我使用的POST方法

const express = require('express')
const app = express()
const bcrypt = require('bcrypt');
// helps finding specifik path
const path = require('path')
const port = 3000


// users array 
const users = [];

app.use(express.static('views'))

app.listen(port,()=>{
    console.log("App is listening on port 3000")
});

// VIGTIGT: tilader at vi kan hente data fra forms via "Name" tagget i formen!
app.use(express.urlencoded({ extended: false }))
// req router fra .auth/user_auth

// Routing: We are mapping to a special respond, and responds a HTML filer
app.get('/contact',(req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/contact.html'))
})
app.get('/login',(req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/login.html'))
})
app.get('/register',(req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/register.html'))
})
app.get('/home',(req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/home.html'))
})
app.get('/portfolio',(req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/portfolio.html'))
})
app.get('/adminpage', (req,res)=>{
    res.sendFile(path.resolve(__dirname,'./html/adminpage.html'))
})

// post metoder fra form



app.post('/register', async (req, res)=>{
    try{
const hashedPassword = await bcrypt.hash(req.body.password, 10)
users.push({
    id: Date.now().toString(),
    name: req.body.username,
    email: req.body.email,
    password: hashedPassword
})
res.redirect('/login')
    } catch{
res.redirect('/register')
    }
console.log(users)
})


form im using 
<form>
    <div class="container">
      <h1>Register</h1>
      <p>Please fill in this form to create an account.</p>
      <hr>
      <label for="username"><b>Username</b></label>
      <input type="text" placeholder="Enter username" name="username" required>

      <label for="email"><b>Email</b></label>
      <input type="text" placeholder="Enter Email" name="email" required>

      <label for="psw"><b>Password</b></label>
      <input type="password" placeholder="Enter Password" name="password" required>

      <hr>
      <p>By creating an account you agree to our <a href="#">Terms & Privacy</a>.</p>
      <button href="/login" type="submit" class="registerbtn">Register</button>
    </div>  
    <div class="container signin">
      <p>Already have an account? <a href="/login">Sign in</a>.</p>
    </div>
  </form>
const express=require('express'))
const app=express()
const bcrypt=require('bcrypt');
//帮助查找指定路径
const path=require('路径')
常数端口=3000
//用户阵列
常量用户=[];
app.use(express.static('views'))
应用程序侦听(端口,()=>{
console.log(“应用程序正在监听端口3000”)
});
//VIGTIGT:vi kan hente数据fra表格上的tilader通过“名称”tagget i formen!
app.use(express.urlencoded({extended:false}))
//请求路由器帧身份验证/用户身份验证
//路由:我们映射到一个特殊的响应,并响应一个HTML文件管理器
app.get('/contact',(请求、回复)=>{
res.sendFile(path.resolve(_dirname,'./html/contact.html'))
})
app.get('/login',(req,res)=>{
res.sendFile(path.resolve(uu dirname,'./html/login.html'))
})
应用程序获取('/寄存器',(请求,恢复)=>{
res.sendFile(path.resolve(_dirname,'./html/register.html'))
})
app.get('/home',(请求,res)=>{
res.sendFile(path.resolve(_dirname,'./html/home.html'))
})
app.get('/portfolio',(req,res)=>{
res.sendFile(path.resolve(_dirname,'./html/portfolio.html'))
})
app.get('/adminpage',(req,res)=>{
res.sendFile(path.resolve(_dirname,'./html/adminpage.html'))
})
//后梅托德fra表
app.post('/register',异步(req,res)=>{
试一试{
const hashedPassword=wait bcrypt.hash(req.body.password,10)
用户推送({
id:Date.now().toString(),
名称:req.body.username,
电子邮件:req.body.email,
密码:hashedPassword
})
res.redirect(“/login”)
}抓住{
res.redirect(“/register”)
}
console.log(用户)
})
我使用的表格
登记
请填写此表格以创建帐户


用户名 电子邮件 密码
通过创建帐户,您同意我们的

登记 已经有账户了吗


首先,您需要指定
方法和
操作来确定数据发送到的位置:


其次,当服务器接收到传入数据时,您没有对其进行解析。
req.body
语法意味着数据是作为object/JSON接收的,但是我在代码中没有看到任何东西表明您正在这样做

您可以使用多个软件包中的一个来完成这项工作,而Express具有用于此目的的内置中间件。我建议使用
主体解析器

constbodyparser=require('body-parser');
app.use(express.json())
使用(bodyParser.urlencoded({extended:true}))


值得向函数中添加临时
控制台.log(req.body)
以检查表单数据是否按预期接收。

首先,您需要指定
方法和
操作来确定数据发送到的位置:


其次,当服务器接收到传入数据时,您没有对其进行解析。
req.body
语法意味着数据是作为object/JSON接收的,但是我在代码中没有看到任何东西表明您正在这样做

您可以使用多个软件包中的一个来完成这项工作,而Express具有用于此目的的内置中间件。我建议使用
主体解析器

constbodyparser=require('body-parser');
app.use(express.json())
使用(bodyParser.urlencoded({extended:true}))


值得为您的函数添加一个临时的
console.log(req.body)
,以检查表单数据是否按预期接收。

您是否能够打印req.body?我做了一个console.log(req.body);我得到了“Req未定义”在OP中共享完整的代码编辑,如果这有助于首先更改HTML表单,通过表单和方法post发送数据您能够打印Req.body吗?我做了一个console.log(Req.body);我得到了“Req未定义”在OP中共享完整的代码编辑,如果这有助于首先更改HTML表单,请通过表单和方法post发送数据