Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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 NodeJS新增-TypeError:无法读取属性';电子邮件';未定义的_Javascript_Node.js_Typeerror_Ejs_Body Parser - Fatal编程技术网

Javascript NodeJS新增-TypeError:无法读取属性';电子邮件';未定义的

Javascript NodeJS新增-TypeError:无法读取属性';电子邮件';未定义的,javascript,node.js,typeerror,ejs,body-parser,Javascript,Node.js,Typeerror,Ejs,Body Parser,我是NodeJS新手,有以下错误: 我的代码非常简单。这是我的apps.js文件: var express = require('express'); var mysql = require('mysql'); var body_parser = require('body-parser'); var app = express(); app.set("view engine", "ejs"); app.set(body_parser.urlencod

我是NodeJS新手,有以下错误:

我的代码非常简单。这是我的apps.js文件:

var express = require('express');
var mysql = require('mysql');
var body_parser = require('body-parser');
var app = express();

app.set("view engine", "ejs");
app.set(body_parser.urlencoded({extended: true}));

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'join_us'
});

app.get("/", function(req, res){
    var q = "SELECT COUNT(*) AS count FROM users";
    connection.query(q, function(err, results){
        if (err) throw err;
        var count = results[0].count;
        res.render("home", {count: count});
    });
});

app.post("/register", function(req, res){
    var person = {
        email: req.body.email
    };
    connection.query('INSERT INTO users SET ?', person, function(err, result) {
        if (err) throw err;
        res.redirect("/");
    });
});

app.listen(3000, function(){
    console.log("Server running on 3000!");
});
这是my home.ejs文件:

<h1>JOIN US</h1>
 
<p class="lead">Enter your email to join <strong><%= count %></strong> 
others on our waitlist. We are 100% not a cult. </p>
 
<form method="POST" action='/register'>
 <input type="text" class="form" name="email" placeholder="Enter Your Email">
 <button>Join Now</button>
</form>

我知道已经有一些类似的问题,但没有一个答案对我有用。谢谢:)

诸如
主体解析器
之类的中间件应该使用
use()
方法设置,而不是
set()
,该方法用于其他类型的应用程序配置目的

因此,替换这一行:

app.set(body_parser.urlencoded({extended: true}));  // incorrect
与:

app.set(body_parser.urlencoded({extended: true}));  // incorrect
app.use(body_parser.urlencoded({extended: true}));  // correct