无法读取未定义的属性“ id”。表示

西蒙·德拉格斯贝克(SimonDragsbæk)

完整的代码如下-很简单,我想添加,删除或更新帖子-当我由他们自己做一件事情时,它可以工作,但同时会中断

我在NodeJS MySQL中大量搜索了我用来查询数据库的信息

var mysql = require('mysql');

var connection = mysql.createConnection({
  host : 'localhost',
  port : 3306,
  database: 'nodeproject',
  user : 'noderoot',
  password : 'default'
});

var express = require('express');
var http = require('http');
var path = require('path');
var exphbs  = require('express3-handlebars');
var qs = require('querystring');

var app = express();

app.set('port', process.env.PORT || 8000);
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

configQuery = function() {
  connection.config.queryFormat = function (query, values) {
  if (!values) return query;
  return query.replace(/\:(\w+)/g, function (txt, key) {
    if (values.hasOwnProperty(key)) {
      return this.escape(values[key]);
    }
    return txt;
  }.bind(this));
  };
}


index = function(req, res){
    /*connection.connect(function(err){
      if(err != null) {
        res.end('Error connecting to mysql:' + err+'\n');
      }
    });*/

    connection.query("SELECT * FROM posts", function(err, rows){
      if(err != null) {
        res.end("Query error:" + err);
      } else {
        var myOuterRows = [];
        for (var i = 0; i < rows.length; i++) {
            var myRows = rows[i];
            myOuterRows.push(myRows);
        };

        res.render('index', { 
            title: 'Express Handlebars Test',
            posts: myOuterRows
        });
      }
    });
};

addpost = function(req, res) {
    var post  = {
        id: req.body.post.id, 
        postTitle: req.body.post.postTitle, 
        postContent: req.body.post.postContent,
        published: req.body.post.published
    };

    connection.query('INSERT INTO posts SET ?', post, function(err, result) {
        console.log("Neat! you entered a post");
    });

    res.redirect("/");
}
editpost = function(req, res) {

    configQuery();

    var edit = {
        id: req.body.editpost.id, 
        postTitle: req.body.editpost.postTitle, 
        postContent: req.body.editpost.postContent
    };


    var queryTitle = connection.query("UPDATE posts SET ?", edit, function(err, result) {
        console.log("Neat! you editted a post")
    });

    res.redirect("/");
}
deletepost = function(req, res) {

    configQuery();

    var deleteThis  = {
        id: req.body.deletepost.id
    };

    console.log(deleteThis);

    var queryDelete = connection.query("DELETE FROM posts WHERE id = :id", {
        id: deleteThis.id
    });

    res.redirect("/");
}

app.get('/', index);

app.post('/', addpost);
app.post('/', editpost);
app.post('/', deletepost);

//app.get('/list', list);

http.createServer(app).listen(8000, function(){
  console.log('Express server listening on port ' + app.get('port'));


});

我得到的错误如下:

500 TypeError: Cannot read property 'id' of undefined
at editpost (C:\dev\ExpressHbsMysql\app.js:96:24)
at callbacks (C:\dev\ExpressHbsMysql\node_modules\express\lib\router\index.js:164:37)
at param (C:\dev\ExpressHbsMysql\node_modules\express\lib\router\index.js:138:11)
at pass (C:\dev\ExpressHbsMysql\node_modules\express\lib\router\index.js:145:5)
at Router._dispatch (C:\dev\ExpressHbsMysql\node_modules\express\lib\router\index.js:173:5)
at Object.router (C:\dev\ExpressHbsMysql\node_modules\express\lib\router\index.js:33:10)
at next (C:\dev\ExpressHbsMysql\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at Object.methodOverride [as handle] (C:\dev\ExpressHbsMysql\node_modules\express\node_modules\connect\lib\middleware\methodOverride.js:48:5)
at next (C:\dev\ExpressHbsMysql\node_modules\express\node_modules\connect\lib\proto.js:193:15)
at C:\dev\ExpressHbsMysql\node_modules\express\node_modules\connect\lib\middleware\urlencoded.js:83:7
哈哈哈

应该去哪里?

app.post('/', addpost);
app.post('/', editpost);
app.post('/', deletepost);

addpost或到editpost或到deletepost

据我可以从您的代码中得知,我建议您为每个处理程序保留不同的URL,这样您就可以告诉要调用的处理程序,现在所有您的发布请求都调用第一个处理程序,即 addpost

像这样映射您的处理程序

app.post('/post/add', addpost);
app.post('/post/edit', editpost);
app.post('/post/delete', deletepost);

接下来,在你的形式,或者如果您正在使用AJAX后您addrequest到“/后/添加”,editrequest/post/edit等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法读取未定义的属性“ id”

来自分类Dev

表示问题TypeError:无法读取未定义的属性“方法”

来自分类Dev

灰烬路线:无法读取未定义的属性“ id”

来自分类Dev

guildBanAdd无法读取未定义的属性“ id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

来自分类Dev

Gatsby TypeError-无法读取未定义的属性“ id”

来自分类Dev

MERN-TypeError:无法读取未定义的属性“ id”

来自分类Dev

删除时出错:无法读取未定义的属性“ id”

来自分类Dev

Serverless:“ errorMessage”:“无法读取未定义的属性” id“,

来自分类Dev

Angular Material TypeError:无法读取未定义的属性“ id”

来自分类Dev

用户注销后无法读取未定义的属性“ _id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

来自分类Dev

guildBanAdd无法读取未定义的属性“ id”

来自分类Dev

JWT-TypeError:无法读取未定义的属性“id”

来自分类Dev

Highstock的同步图表示例崩溃,显示“无法读取未定义的属性'类别'”

来自分类Dev

Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

来自分类Dev

AngularJS + Fullcalendar发送错误TypeError:无法读取未定义的属性'__id'

来自分类Dev

使用猫鼬findOneandUpdate时无法读取未定义的属性'_id'

来自分类Dev

解析工厂中声明的数组时,“无法读取未定义的属性'id'”

来自分类Dev

TypeError:无法读取未定义的属性'id'-Sails和MongoDB

来自分类Dev

未捕获的TypeError:无法读取registerNgModuleType上未定义的属性“ id”-角度PWA

来自分类Dev

NodeJs TypeError:无法读取未定义的属性“ Customer_id”

来自分类Dev

无法读取未定义的属性“代码”,解码Firebase ID令牌失败

来自分类Dev

core.js:6406错误TypeError:无法读取未定义的属性“ id”

来自分类Dev

功能组件到类组件错误:无法读取未定义的属性“ id”

来自分类Dev

TypeError:无法读取未定义的属性“ id” Discord.js

来自分类Dev

错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

来自分类Dev

错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

来自分类Dev

UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ public_id”

Related 相关文章

  1. 1

    无法读取未定义的属性“ id”

  2. 2

    表示问题TypeError:无法读取未定义的属性“方法”

  3. 3

    灰烬路线:无法读取未定义的属性“ id”

  4. 4

    guildBanAdd无法读取未定义的属性“ id”

  5. 5

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

  6. 6

    Gatsby TypeError-无法读取未定义的属性“ id”

  7. 7

    MERN-TypeError:无法读取未定义的属性“ id”

  8. 8

    删除时出错:无法读取未定义的属性“ id”

  9. 9

    Serverless:“ errorMessage”:“无法读取未定义的属性” id“,

  10. 10

    Angular Material TypeError:无法读取未定义的属性“ id”

  11. 11

    用户注销后无法读取未定义的属性“ _id”

  12. 12

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ id”

  13. 13

    guildBanAdd无法读取未定义的属性“ id”

  14. 14

    JWT-TypeError:无法读取未定义的属性“id”

  15. 15

    Highstock的同步图表示例崩溃,显示“无法读取未定义的属性'类别'”

  16. 16

    Angular2-TypeError:无法读取(Typescript)中未定义的属性'Id'

  17. 17

    AngularJS + Fullcalendar发送错误TypeError:无法读取未定义的属性'__id'

  18. 18

    使用猫鼬findOneandUpdate时无法读取未定义的属性'_id'

  19. 19

    解析工厂中声明的数组时,“无法读取未定义的属性'id'”

  20. 20

    TypeError:无法读取未定义的属性'id'-Sails和MongoDB

  21. 21

    未捕获的TypeError:无法读取registerNgModuleType上未定义的属性“ id”-角度PWA

  22. 22

    NodeJs TypeError:无法读取未定义的属性“ Customer_id”

  23. 23

    无法读取未定义的属性“代码”,解码Firebase ID令牌失败

  24. 24

    core.js:6406错误TypeError:无法读取未定义的属性“ id”

  25. 25

    功能组件到类组件错误:无法读取未定义的属性“ id”

  26. 26

    TypeError:无法读取未定义的属性“ id” Discord.js

  27. 27

    错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

  28. 28

    错误错误:未捕获(承诺):TypeError:无法读取未定义的属性“ id”

  29. 29

    UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“ public_id”

热门标签

归档