TypeError:无法读取express,postgres,sequelize中未定义错误的属性“ create”

时间:2018-11-04 20:48:48

标签: node.js postgresql express login sequelize.js

我正在尝试使用Express和名为Postgres的{​​{1}}和ORM来创建登录系统

这是我的代码:

user.js

Sequelize

这是我的articles.js

var express = require('express');
var bodyParser = require('body-parser');
var db = require('../config/database');
var path = require('path');
var router = express.Router();
var {alumno, profesor} = require('../models/articles');

router.use(bodyParser.urlencoded({ extended: false }));
router.use(bodyParser.json());

    router.post("/doregister_profesor", function(req, res) {
      console.log("FIRST REQUEST ======>", req.body);
      console.log("STEP 1 ======>", Date.parse(req.body.edad));
      const edad = Date.parse(req.body.edad);
      try {
        db.sequelize.sync().then(() =>
            profesor.create({
            username : req.body.username,
            password: req.body.password,
            email: req.body.email,
            pdni: req.body.pdni,
            pdniinput: req.body.pdniinput,
            edad: new Date(Date.now()),
            grado: req.body.grado
          })
        ); 
          var newProfesor = new profesor({
          username : username,
          password: password,
          email: email,
          pdni: pdni,
          pdniinput: pdniinput,
          edad: new Date(Date.now()),
          grado: grado
        });
        profesor.createProfesor(newProfesor, function(){
          if(err) throw err;
          console.log(user)
        });
        res.render('entrar_profesores');
      } catch (e) {
        console.log(e);
      }
    });

passport.js

var db = require('../config/database');

const profesores = db.sequelize.define('profesores', {
  username: db.Sequelize.STRING,
  password: db.Sequelize.STRING,
  email : db.Sequelize.STRING,
  pdni: db.Sequelize.STRING,
  pdniinput: db.Sequelize.INTEGER,
  edad : db.Sequelize.DATEONLY,
  grado : db.Sequelize.STRING
},
);


var profesor = module.exports = {'profesores': profesores};

var alumno = module.exports = {'alumnos': alumnos};

module.exports.createAlumnos = function(newAlumno, callback){
  bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash(newAlumno.password, salt, function(err, hash) {
      newAlumno.password = hash;
      newAlumno.save(callback);
    });
});
}


module.exports.createProfesor = function(newProfesor, callback){
  bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash(newProfesor.password, salt, function(err, hash) {
      newProfesor.password = hash;
      newProfesor.save(callback);
    });
});
}

我收到以下错误消息:

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
const {profesores, alumnos} = require('../models/articles');
const config = require('../config/database');
var express = require('express');
let session = require('express-session')
let router = express.Router();


module.exports = function(passport){
    console.log('llego hasta aqui 1', profesores);
    passport.use('local', new LocalStrategy({
        usernameField: 'email',
        passwordField: 'password',
        passReqToCallback: true
      }, function(req, email, password, done){
          profesores.findOne({where: {email: email, password:password}}).then(function(user) {//function(err, user){
            console.log('consulta hecha');
            //console.log(user);
            if (!user) {
                return done(null, false);
            }
            /*if (!user.validPassword(password)) {
                return done(null, false);
            }*/
            return done(null, user);
          });
      })
      );


      passport.serializeUser(function(user, done) {
        console.log('llego hasta aqui 32 ', err);
        done(null, user.id)
        console.log('=================== ',err);

      });
      try{
         passport.deserializeUser(function(id, done) {
        console.log('llego hasta aqui ===============');
        profesores.findById(id).then(function(user){
          done(user);
        });
        console.log('llego hasta aqui 53');
      });
    }catch (err) {
        console.log(err);
    }

}

1 个答案:

答案 0 :(得分:0)

您的出口似乎有误:

for tag in soup.find_all('div', class_='js-diff-progressive-container'):
    print 1
    for div in tag.find_all('div'):
        id = div.get('id')
        if id:
            id = id.split('-')
            print id
            if id[0] == 'diff':
                div2 = div.find_all('div')
                class_div = div2[0]
                if class_div.get('data-path'):
                    changed_class.append(class_div.get('data-path'))

可能是您想要做的,请注意,module.exports.profesor = profesores; module.exports.alumno = alumno; 未定义。

还请注意,您在alumnopassport.js中的导入不匹配。