Javascript TypeError:无法读取属性';id';nodejs中未定义的
我正在努力创建一个函数,根据文本框中输入的id从数据库中进行选择。我编写了代码,但它在控制台中显示了此错误,我无法解释原因:Javascript TypeError:无法读取属性';id';nodejs中未定义的,javascript,jquery,node.js,Javascript,Jquery,Node.js,我正在努力创建一个函数,根据文本框中输入的id从数据库中进行选择。我编写了代码,但它在控制台中显示了此错误,我无法解释原因:TypeError:cannotreadproperty'id'of undefined var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: false })); 到目前为止,我掌握的代码是: 客户端: function select()
TypeError:cannotreadproperty'id'of undefined
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
到目前为止,我掌握的代码是:
客户端:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id: id
},
succes: function(data){
var id = data.id;
alert(id);
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
app.post('/id', function(req,res) {
var data = req.body;
var id = data.id;
console.log(id);
var query = "SELECT * FROM Control WHERE id=" +id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
dataType: 'json',
url: '/id',
data : {
id: id
},
success: function(data){
data = JSON.parse(data);
var id = data.id;
alert("merge");
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
服务器端:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id: id
},
succes: function(data){
var id = data.id;
alert(id);
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
app.post('/id', function(req,res) {
var data = req.body;
var id = data.id;
console.log(id);
var query = "SELECT * FROM Control WHERE id=" +id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
dataType: 'json',
url: '/id',
data : {
id: id
},
success: function(data){
data = JSON.parse(data);
var id = data.id;
alert("merge");
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
L.E:
功能选择:
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
url: '/id',
data : {
id: id
},
succes: function(data){
var id = data.id;
alert(id);
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
app.post('/id', function(req,res) {
var data = req.body;
var id = data.id;
console.log(id);
var query = "SELECT * FROM Control WHERE id=" +id;
connection.query(query, function(error, result) {
console.log(result);
res.send(result);
});
});
function select()
{
var id = $('#nr_reg').val();
$.ajax({
type: 'post',
dataType: 'json',
url: '/id',
data : {
id: id
},
success: function(data){
data = JSON.parse(data);
var id = data.id;
alert("merge");
$('#optic').val(id);
},
error: function(err){
console.log(err);
}
});
}
你说你的错误在服务器端?将正文分析器添加到express应用程序: 第一次安装主体解析器:
npm install body-parser -s
请在您的应用程序中包含以下内容:
var express = require('express');
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post(/*....*/);
你的app.post
必须在app.use
行之后。完整示例
顺便说一句,这是重复的,你说你的错误在服务器端?将正文分析器添加到express应用程序: 第一次安装主体解析器:
npm install body-parser -s
请在您的应用程序中包含以下内容:
var express = require('express');
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post(/*....*/);
你的app.post
必须在app.use
行之后。完整示例
顺便说一句,这是一个重复的请确保您已经
要求d正文解析器。
并使用bodyParser.urlencoded
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
这应该在.post
路线定义之前
编辑:
在此之前,您必须执行npm安装body parser
:)确保您已经要求dbody parser
。
并使用bodyParser.urlencoded
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
这应该在.post
路线定义之前
编辑:
在此之前,您必须执行npm安装body parser
:)在success
中添加console.log(数据)
,并查看在console中得到了什么它没有输入succes
,因为错误在服务器端。那么,您使用的是body parser中间件吗,否则您将无法在express上获得req.body。您使用的是哪个express版本?是的,我是@GonzaloBahamondez。TTushar-它在控制台中表示未定义。仅此而已。在success
中添加console.log(data)
并查看在控制台中得到了什么。它没有输入succes
,因为错误在服务器端。那么,您使用的是body parser中间件吗,否则您将无法在express上获得req.body。您使用的是哪个express版本?是的,我是@GonzaloBahamondez。TTushar-它在控制台中表示未定义。就这些了。快车4或最新的怎么样?在Express4中没有“express.bodyParser”,仍然一样,您必须注册中间件来解析请求主体:大多数中间件(如bodyParser)不再与Express4捆绑在一起,必须单独安装
。为什么?我有express.。至于express 4+的body parser
是一个单独的模块。@DanielGruszczyk:O不是真的,您需要body parser模块。。。。express没有内置bodyParser,请看一下您发送给我的链接express 4或最新版本怎么样?在Express4中没有“express.bodyParser”,仍然一样,您必须注册中间件来解析请求主体:大多数中间件(如bodyParser)不再与Express4捆绑在一起,必须单独安装
。为什么?我有express.。至于express 4+的body parser
是一个单独的模块。@DanielGruszczyk:O不是真的,您需要body parser模块。。。。express没有内置bodyParser,请查看您发送给我的链接OK。这样就行了。它正确获取id,正确显示结果,但仍然没有在客户端输入success
。为什么会这样?它没有显示错误。在控制台中,仅显示id和结果。但在客户端,我有一个id为的警报,现在显示出来了,仍然没有根据所选内容设置textbox的值。为什么?@Ezekiel mmm在你的客户端代码中,你有“succes”应该是“success”,我想没有?@Ezekiel:你能粘贴success
回调中收到的data
的值吗?你可能需要做data=JSON.parse(data)代码>成功回调中的第一个。您尚未在ajax调用中设置数据类型
属性。确定。这样就行了。它正确获取id,正确显示结果,但仍然没有在客户端输入success
。为什么会这样?它没有显示错误。在控制台中,仅显示id和结果。但在客户端,我有一个id为的警报,现在显示出来了,仍然没有根据所选内容设置textbox的值。为什么?@Ezekiel mmm在你的客户端代码中,你有“succes”应该是“success”,我想没有?@Ezekiel:你能粘贴success
回调中收到的data
的值吗?你可能需要做data=JSON.parse(data)代码>成功回调中的第一个。您尚未在ajax调用中设置dataType
属性。