2016-11-23 51 views
0

我是新的節點。未定義續集 - 續訂和發貨

我想添加Sequelize在我簡單的應用程序與cosign。

配置/ db.js

var Sequelize = require('sequelize'); 

var sequelize = new Sequelize('test', 'root', '', { 

host: 'localhost', 
dialect: 'mysql', 

pool: { 
max: 5, 
min: 0, 
idle: 10000 
} 

}); 

module.exports = function() { 
return sequelize 
} 

模型/ user.js的

var Sequelize = require('sequelize'); 

module.exports = function(application, req, res){ 

var User = sequelize.define('user', { 
username: { 
type: Sequelize.STRING, 
} 
}, { 
freezeTableName: true // Model tableName will be the same as the model name 
}); 

User.create({ username: 'fnord'}) 
.then(function() { 
console.log('criado!'); 
}) 
} 

配置/ server.js

... 
consign() 
.include('app/routes') 
.then('config/db.js') 
.then('app/models') 
.then('app/controllers') 
.into(app); 

module.exports = app; 

,我發現了錯誤sequelize is not defined´ on VAR用戶= sequelize.define('user',{'

我做錯了什麼?

+0

你是怎麼解決這個問題? –

回答

0

如果您需要sequelize例如爲用戶模型

配置/ db.js

module.exports = sequelize;

模型/ user.js的

var Sequelize = require('sequelize'); 
var sequelize = require('../config/db.js'); //sequelize instance 

module.exports = function(application, req, res){ 

var User = sequelize.define('user', { 
... 
+0

返回'無法找到..config/db.js' 此行:'.then('config/db.js')'doenst alredy導入文件? –

0

創建index.js文件中的moldes文件夾是這樣的:

"use strict"; 

var fs  = require("fs"); 
var path  = require("path"); 
var Sequelize = require("sequelize"); 

var sequelize = new Sequelize(global.config.dbConfig.name, global.config.dbConfig.user, global.config.dbConfig.password, { 
    host: global.config.dbConfig.host, 
    port: global.config.dbConfig.port, 
    pool: false 
}); 

var db = {}; 

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; 
    }); 

Object.keys(db).forEach(function(modelName) { 
    if ("associate" in db[modelName]) { 
    db[modelName].associate(db); 
    } 
}); 

db.sequelize = sequelize; 

module.exports = db; 

,並在您的user.js的做這樣的事情:

module.exports = function(sequelize, DataTypes) { 
    var User = sequelize.define("User", { 
    username: { 
     type: DataTypes.STRING 
    }, 
    { 
     freezeTableName: true // Model tableName will be the same as the model name 
    } 
    }); 

    return User; 
} 

http://docs.sequelizejs.com/en/1.7.0/articles/express/