当前位置: 首页 > 知识库问答 >
问题:

无法读取节点中未定义的属性“Find One”并进行后遗症

谢胤
2023-03-14

这是我的admin_pages.js文件,我已经完成了迁移和模型,但是我得到了这个错误。

TypeError:无法读取C:\users\gaffer\desktop\gaffercart\routes\admin_pages.js:80:21层的未定义属性。Handle[as handle_request](C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\layer.js:95:5)层的下一层(C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\route.js:137:13)层的下一层as handle_request](C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\layer.js:95:5)在C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\layer.js:281:22at function.process_params(C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\index.js:335:12)ER\desktop\gaffercart\node_modules\express\lib\router\index.js:174:3)在路由器(C:\users\gaffer\desktop\gaffercart\node_mOdules\Express\lib\router\index.js:47:12)在Layer.handle[as handle_request](C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\layer.js:95:5)在trim_prefix(C:\users\gaffer\desktople\gaffercart\node_modules\express\lib\router\layer.js:317:13)在\lib\router\index.js:335:12)在下一个(C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\index.js:275:10)在C:\users\gaffer\desktop\gaffercart\indoffer\desktop\gaffercart\index.js:70:3在layer.handle[as handle_request](C:\users\gaffer\desktop\gaffer\desktop\gaffercart\node_modules\express\lib\router\index.js:284:7atfunction.process_params(C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\routeR\index.js:335:12)在下一个(C:\users\gaffer\desktop\gaffercart\node_modules\express\lib\router\index.js:275:10)在C:\users\gaffer\desktop\gaffercart\node_modules\connect-flash\lib\flash.js:21:5

var express=require('express');
var router=express.Router();
var expressValidator = require('express-validator');
var bodyParser=require('body-parser');
var models=require('../models');

// var mysql=require('mysql');
// var Sequelize=require('sequelize');
// var DataTypes=Sequelize.DataTypes;
// var sequelize = exports.sequelize = module.parent.exports.sequelize;
// let sequelize=new Sequelize();

//Get Page model
const Page = require('../models/page');

/*
* GET PAGES INDEX its correct but commiting it
*/

 router.get('/',function(req,res){
 //  Page.find({}).sort({sorting: 1}).exec(function(err,pages){
    res.render('admin/pages',{ 
      //pages:pages
    });
   });
 //});
//  router.get('/admin/dashboard',function(req,res){
//    res.render('admin/dashboard');
//  });


/*
** GET ADD PAGE
*/
 router.get('/add-page',function(req,res){
   var title="";
   var slug="";
   var content="";


   res.render('admin/add_page',{
      title:title,
      slug:slug,
      content:content

   });

 });

//POST ADD page
 router.post('/add-page',function(req,res){
  //  console.log("alsdjlajsi")

  req.checkBody('title','Title must have a body.').notEmpty();
  req.checkBody('content','Content must have a body.').notEmpty();

  var title = req.body.title;
  var slug = req.body.slug.replace(/\s+/g, '-').toLowerCase();
  if(slug == " ")  
  {
    slug = title.replace(/\s+/g, '-').toLowerCase();
  }
  var content = req.body.content;
  var errors = req.validationErrors();

  //If there are Errors then define it on the same page
  if(errors){
    res.render('admin/add_page',{
      errors:errors,
      title:title,
      slug:slug,
      content:content
    });
  }
  /*
  * Have use Pages
  */
      else{

        models.Page.findOne({slug:slug}, function(err, page){

        if(page){
          req.flash('danger','Page slug Already Exist,');
          res.render('admin/add_page',{

            title:title,
            slug:slug,
            content:content
          });
        }
        else{
            var page = new Page({
              title:title,
              slug:slug,
              content:content,
              sorting:100
            });
            page.save(function(err){
              if(err) return console.log(err);

              req.flash('success','Page Added Successfully!!');
              res.redirect('/admin/pages');
            });
        }
      });

  }

});
//Exports
module.exports=router;

这是我的页面模型

'use strict';
// var Sequelize=require('sequelize');

module.exports = (sequelize, DataTypes) => {
  var page = sequelize.define('page', {
    title: DataTypes.STRING,
    slug: DataTypes.STRING,
    content: DataTypes.STRING,
    sorting:DataTypes.INTEGER
  }, {});
  page.associate = function(models) {
    // associations can be defined here
  };
  return page;
};

共有1个答案

鲍永春
2023-03-14

您已经将页面模型定义为'Page'(小写):

var page = sequelize.define('page', {...})

但将其用作:

 models.Page.findOne(...) // uppercase

使用models.page或将模型定义改为大写:

var page = sequelize.define('Page', {...}) // uppercase
//Get Page model
const Page = require('../models/page');
const Page = require('../models').Page // or .page if you keep your definition lowercase
else { 
  models.Page.findOne({ 
    where: { slug }  // destructuring
  })
  .then((page) => {
    // work with the page instance
  })
  .catch((err) => {
    // error case
  })

}
page.save()
  .then(() => {
    req.flash('success','Page Added Successfully!!');
    res.redirect('/admin/pages');
  })
  .catch((err) => {
    // handle error
  })
 类似资料:
  • tran.js 错误 (节点:12012)未处理的PromisejectionWarning:未处理的promise拒绝(拒绝id:1):TypeError:无法读取未定义(节点:12012)[DEP0018]弃用警告:未处理的promise拒绝被弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程。 我不知道该怎么办

  • 我试图添加盐到我的密码,但我有这个错误: (节点:12652)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“value” (节点: 12652)UnhandledPromiseRejse警告:未处理的promise拒绝。这个错误要么是由于抛出一个没有捕获块的异步函数,要么是由于拒绝了一个没有用. cat()处理的promise。(拒绝id: 1) (

  • 机器人随机崩溃并发出此错误。我已经将它编程为每当有问题时自动重新启动,并记录错误,因为它的技术上意味着不关机。 用于自动重新启动的代码如下: 我似乎也被“未经处理的承诺拒绝”...

  • 下午好,我是新反应和Node.js和我有一个问题。 我在一个网页上有一个表格,你将在那里收到旅行的数据。travel_order模型中存在这些列(Id locales、name、date、time),但是“lockations name”列旨在使用Id列出这些地方的名称。此位置的ID在“地点ID”列中列出。但是,在列出时,它给我一个错误:“TypeError:不能读取未定义的属性'Designac

  • 在类中使用其他方法时遇到问题。我正在使用express framework,必须使用Ecma脚本6。当我尝试在同一类中使用方法时,出现了一个错误: 无法读取未定义的属性“generatePassword” TypeError:无法读取属性'GeneratePassword'的未定义在createUser(E:\OpenServer\域\testNode\app\控制器\users.js: 5:13

  • 在本教程的帮助下,我将使用条形码扫描仪和SQLite构建一个Ionic库存管理应用程序:https://www . tech iediaries . com/Ionic-Cordova-SQLite-Barcode-Scanner-product-Inventory-manager/ 当我添加这段代码时: …到数据服务。ts我得到这个错误: core . js:19866 ERROR ERROR: