【发布时间】:2018-01-27 00:30:41
【问题描述】:
我是 Node js 的新手。我正在尝试使用 mysql 在节点 js 中制作 CRUD 应用程序。但我面临着我无法理解或处理的错误。请帮忙。并在 adv 中表示感谢。
我无法将输入字段值从 ejs 页面读取到 server.js 页面。
下面给出了我的 server.js 文件
// server.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "tuts_rest"
});
// set the view engine to ejs
app.set('view engine', 'ejs');
// about page
app.get('/about', function(req, res) {
res.render('pages/about');
});
app.post('/insert', function(req,res){
con.connect();
console.log(req.body.name);
con.query("INSERT INTO users(name,email,country) VALUES('"+req.body.name+"','"+req.body.email+"','"+req.body.country+"')", function(err, results) {
if (!err)
res.send('Inserted Successfully!')
else
throw error;
});
con.end();
});
app.listen(8080);
console.log('8080 is the magic port');
我正在使用表单发送以下数据
<form role="form" action="/insert" method="POST">
<div class="form-group">
<label for="lname">Name:</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="form-group">
<label for="country">Country:</label>
<input type="text" class="form-control" id="country" name="country">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
错误如下所示
TypeError: Cannot read property 'name' of undefined
at E:\xampp\htdocs\node\basic\server.js:40:22
at Layer.handle [as handle_request] (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\layer.js:95:5)
at next (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\layer.js:95:5)
at E:\xampp\htdocs\node\basic\node_modules\express\lib\router\index.js:281:22
at Function.process_params (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\index.js:335:12)
at next (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\index.js:275:10)
at expressInit (E:\xampp\htdocs\node\basic\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (E:\xampp\htdocs\node\basic\node_modules\express\lib\router\layer.js:95:5)
【问题讨论】:
-
console.log(req.body.name);有输出吗? -
no.. 它什么也不返回..@Jehy
-
这就是问题所在。当您将数据发布到您的网络服务器时,请尝试发送
name参数。 -
它也终止了服务器..