mysql - 使用 sequelize 和 express 进行构建时出现未定义错误

标签 mysql node.js express sequelize.js

我正在从表单中检索数据。在帖子上,当我想使用 sequilize 进行构建时,出现错误:

TypeError: Cannot read property 'build' of undefined

索引.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();
});

索引.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;

用户.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);
    });
});

如有任何帮助,我们将不胜感激。

最佳答案

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

应该是:

... sequelize.define('User', { .. 

关于mysql - 使用 sequelize 和 express 进行构建时出现未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211144/

相关文章:

php - 通过 Codeigniter 在 MySQL 中存储日期。日期存储为 0000 :00:00

php - 获取此 MySQL 查询的最终值

javascript - 尝试从 node.js 执行 POST 请求时出现 400 Request TimeOut 错误

node.js - Browserify 尝试在错误路径上查找模块

ruby-on-rails - Nginx 有 1 个域名,2 个应用程序。罗尔+nodejs

mysql - 如何将同一张表与其他 3 个表多次连接?

Mac OS X 10.8.5 上的 MySQL 连接错误

node.js - Express 4 路线问题

javascript - Express Validator 来验证日期时间

javascript - Express js不执行最后一个功能