簡體   English   中英

類型錯誤:無法從表單提交中讀取未定義的屬性“用戶名”

[英]TypeError: Cannot read property 'username' of undefined from Form Submit

我有一個正在提交的表單,但我無法將表單“req.body”用戶名和密碼屬性分配給數據庫(密碼沒有哈希值,只是試圖讓 MEAN CRUD 應用程序為初學者工作)。

我的表格如下:

形式

<form action="/signup" method="post">
    <input type="text" name="username" placeholder="Username" />
    <input type="password" name="password" placeholder="Password" />
    <button type="submit" value="Sign Up" />
</form>

用戶架構 (./models/user.js)

var mongoose = require("mongoose");

var UserSchema = new mongoose.Schema({
    username: String,
    password: String
});

module.exports = mongoose.model('User', UserSchema);

app.js(僅顯示對用戶模型和“/signup”發布功能的引用

var User = require("./models/user");
app.post("/signup", function(req, res) {
    var user = new User();
    user.username = req.body.username;
    user.password = req.body.password;
    user.save(function(err) {
        if (err) {
            res.send(err);
        }
        res.redirect("/profile", { message: 'User successfully registered!', data: user });
    });
});

當我運行應用程序時:

node app.js

一切運行良好。 所有端點、路由都正常工作。

但是,當我單擊上述表單的提交按鈕時,我的終端中收到以下錯誤:

TypeError: Cannot read property 'username' of undefined
    at Layer.handle [as handle_request](/node_modules/express/lib/router/layer.js:95:5)
    at next (/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/node_modules/express/lib/router/layer.js:95:5)

如何確保req.body.usernamereq.body.password成功傳遞到 mongodb 數據庫?

感謝您的幫助。

這是您需要做的。

首先,安裝 body-parser

$ npm install --save body-parser

然后在你的 aap.js 文件中

app.post('/', function(req, res){
  var username= req.param('username', null);  
  var username= req.param('password', null);  
});

您是否在您的應用中啟用了 body-parser? 確保你有這一行:

app.use(bodyParser.urlencoded({extended: false}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM