2017-07-28 3 views
1

Problem

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

die Konsole statt Eingangsdatenich bin nicht in der Lage Daten aus HTML-Steuerelemente in NodeJS und MongoDB in Code

die Konsole zeigt Werte undefiniert Werte mit get-Methode zu holen zeigt undefined anstelle von Eingabedaten

Ich möchte Daten aus einer HTML-Datei nehmen und mit get-Methode in die Mongo-Datenbank einfügen. Ich kann jedoch keine Daten aus der Textbox abrufen.

-Code in 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-Seite (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> 
+0

Erste Ihre Methode POST ändern, und die gesendete Eingang, den Sie Zugang haben zu erhalten das Körperobjekt der Anfrage, zB: 'req.body.userid'. –

Antwort

0

Versuchen Sie diesen Code

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

Es funktioniert gut. Danke Anuj Kumar Pal. –

0

Sie haben app.post Methode in node.js zu verwenden.

Und verwenden Sie Methode = 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> 

Daten zu Knoten gesendet verwendet Post, löschen, setzen Methoden. Wenn Sie jedoch Daten vom Knoten zurückholen möchten, können Sie die Methode .get() verwenden.

Ich schlage vor, versuchen Sie, req (d. H. console.log(req)) zu drucken. Wie könnte Daten in req.body gespeichert werden.

0

Sie müssen POST Anfrage verwenden, und die Daten gewonnen, t in req Objekt verfügbar sein. Stattdessen wird es verfügbar sein in req.body

Versuchen:

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