我不能从Node控件和mongodb中使用get方法从html控件中获取数据

代码中的问题

var userID = req.userid; var pwd = req.pwd; console.log("userid = " + userID + "pass = " + pwd); 

控制台显示的值未定义,而不是input数据

控制台显示的值未定义,而不是input数据

我想从一个html文件中获取数据,并使用get方法插入到mongo数据库中。 但我无法从文本框中获取数据。

在nodejs(index.js)中的代码

 const express = require('express'); const path = require('path'); const bodyparser = require("body-parser"); const mongoose = require('mongoose'); const app = express(); app.use(bodyparser()); app.use(bodyparser.urlencoded({ extended: false })); app.use(bodyparser.json()); app.set('port', (process.env.PORT || 1000)); mongoose.connect('mongodb://localhost/TrackDB'); var Schema = new mongoose.Schema({ username: String , pass: String }); var users = mongoose.model('users', Schema); app.get("/register", function (req, res) { var userID = req.userid; var pwd = req.pwd; console.log("userid = " + userID + "pass = " + pwd); new users({ username: userID , pass: pwd }).save(function (err, doc) { if (err) { res.json(err); } else res.send("Successfully Registerd!"); }); console.log("users = " + users); }); app.get("/", (req, res) => { res.sendFile(path.join(__dirname, './public/index.html')); }); app.listen(1000, () => { console.log("Server Start......"); }); 

HTML页面(index.html)

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>LOGIN/REGISTER</title> <style> #container { width: 40%; margin: auto; border: 1px solid; padding: 10px; padding-left: 200px; border-radius: 10px; } </style> </head> <body> <div id="container"> <h1>Register</h1> <form action="/register"> <div id="register"> <input type="text" name="userid" id="txt_userid" placeholder="Enter user id"> <br> <input type="password" name="pwd" id="txt_pass" placeholder="Enter password"> <br> <br> <button type="submit" id="btn_register">Register</button> </div> </form> <h1>Login</h1> <form action="/login"> <br> <br> <div id="login"> <input type="text" name="user" id="userid" placeholder="Enter user id"> <br> <br> <input type="password" name="passw" id="pass" placeholder="Enter password"> <br> <br> <button type="submit" id="btn_login">Login</button> </div> </form> <h1 id="msg"></h1> </div> </body> </html> 

试试这个代码

 var userID =req.query.userid; var pwd = req.query.pwd 

您需要使用POST请求,并且获得的数据在req对象中可用。 相反,它将在req.body可用

尝试:

 var userID = req.body.userid; var pwd = req.body.pwd; console.log("userid = " + userID + "pass = " + pwd); 

你必须在node.js使用app.post方法。

并使用method = post。

  <form action="/register" method="post"> <div id="register"> <input type="text" name="userid" id="txt_userid" placeholder="Enter user id"> <br> <input type="password" name="pwd" id="txt_pass" placeholder="Enter password"> <br> <br> <button type="submit" id="btn_register">Register</button> </div> </form> 

发送数据到节点使用post,delete,put方法。 但是如果你想从节点获取数据,你可以使用.get()方法。

我build议尝试打印req(即console.log(req) )。 数据可能存储在req.body中。