这是我的admin_pages.js文件,我已完成迁移和模型,但我收到此错误 .
TypeError:无法在C:\ users \ gaffer \ desktop \ gaffercart \ routes \ admin_pages.js:80:21在Layer.handle [as handle_request](C:\ users \ gaffer \ desktop \)中读取未定义的属性'findOne' gaffercart \ node_modules \ express \ lib \ router \ layer.js:95:5)at Route(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ route.js:137:13)at Route .dispatch(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ route.js:112:3)在Layer.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 \ index.js:281:22 at Function.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)在路由器的Function.handle(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ index.js:174:3)中(C:\ users \ gaffer \ desktop \ gaffercart) \节点_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)在C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \的trim_prefix(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ index.js:317:13) router \ index.js:284:7在Function.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 \ index.js:70:3在Layer.handle [as handle_request](C :\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ layer.js:95:5)trim_prefix(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ index . js:317:13)在C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ index.js:284:7在Function.process_params(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules) \表现\ LIB \糅ter \ index.js:335:12)在C:\ users \ gaffer \ desktop \的下一个(C:\ users \ gaffer \ desktop \ gaffercart \ node_modules \ express \ lib \ router \ index.js:275:10) gaffercart \ node_modules \连接闪存\ 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;
这是我的Page模型
'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 回答
您已将页面模型定义为
'page'
(小写):但是使用它作为:
使用
models.page
或将模型定义更改为大写:也改变这个:
对此:
findOne
不接受函数回调,您必须使用where
按slug
属性进行搜索 . 使用以下内容:与
page.save()
相同: