0

I am retrieving data from a form. On the post when I want to do a build with sequilize I am getting the error:

TypeError: Cannot read property 'build' of undefined

index.js

router.post('/register', function(req, res){
  var name = req.body.name;
  var lastName = req.body.lastName;
  var email = req.body.email;
  var cellNumber = req.body.cellNumber;
  var password = req.body.password;
    console.log(req.body.lastName);
  models.User.build({name: name, lastName: lastName, email: email, cellNumber: cellNumber, password: password})
      .save();
});

index.js

"use strict"
var fs        = require('fs');
var path      = require('path');
var Sequelize = require('sequelize');
var debug = require('debug');
var env = process.env.NODE_ENV || "test";
var config    = require(path.join(__dirname, '..', 'config', 'config.json'))[env];
var db        = {};
var sequelize = new Sequelize(config.database, config.username, config.password, config);

  sequelize.authenticate().then(function(){
    console.log('Database has been successfully authenticated');
    return true;
  }).catch(function(err){
    console.log('Failed to authenticate database: ', err);
    return false;
  });

fs.readdirSync(__dirname)
  .filter(function(file) {
    return (file.indexOf(".") !== 0) && (file !== 'index.js')
  })
  .forEach(function(file) {
    var model = sequelize['import'](path.join(__dirname, file))
    db[model.name] = model
  });


db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

user.js

module.exports = function(sequelize, DataType){

  var User = sequelize.define('user', {
    name: DataType.STRING,
    password: DataType.STRING,
    lastName: DataType.STRING,
    email: DataType.STRING,
    cellNumber: DataType.INTEGER
  });
  return User;
};

www

#!/usr/bin/env mode
var debug = require('debug')('entreeapp')
var app = require('../server');
var models = require('../model');

app.set('port', process.env.PORT || 3000);

//server running
models.sequelize.sync({
    force: true
}).then(function () {
    var server = app.listen(app.get('port'), function(){
        console.log('The magic is happening on port '+server.address().port);
    });
});

any help would be greatly appreciated.

1 Answer 1

4
... sequelize.define('user', { .. 

should be :

... sequelize.define('User', { .. 
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.