sequelize is undefined - Sequelize and consign


Jestem nowy w węźle.
Próbuję dodać Sequelize do mojej prostej aplikacji za pomocą cosign.
config/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
}

model/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!');
})
}

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

Otrzymuję błąd
sequelize is not defined´ on
var User = sequelize.define ('user', {`
Co ja robię źle?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Utwórz plik index.js w folderze moldes w następujący sposób:
"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;

a w swoim user.js zrób coś takiego:
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/ba ... press
http://docs.sequelizejs.com/en ... ress/
/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz wymagać sekwencjonowania instancji w modelu niestandardowym
config/db.js
module.exports = sequelize;
model/user.js
var Sequelize = require('sequelize');
var sequelize = require('../config/db.js');//sequelize instancemodule.exports = function(application, req, res){var User = sequelize.define('user', { ...
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sequelize-CLI to bardzo przydatne narzędzie do projektów korzystających z Sequelize. Kiedy go pobierzesz
<pre class="lang-sh prettyprint-override">
npm install -g sequelize-cli

Wtedy możesz biec
<pre class="lang-sh prettyprint-override">
sequelize init

Powyższe polecenie przejdzie i zapisze dla ciebie kilka folderów, w tym folder modeli, w którym znajduje się plik indeksu, który Ricardo utworzył powyżej. Daje też naprawdę fajną konfigurację środowiska. W folderze nowych modeli możesz utworzyć nowy plik z obiektem, używając składni ...
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;
}

Chociaż lubię to jako narzędzie. Należy tutaj zauważyć, że Sequelize będzie szukać pierwszego argumentu metody
define ()
. Więc mogliśmy po prostu napisać
module.exports = function(sequelize, DataType){
return sequelize.define("User", {
username: {
type: DataTypes.STRING
},
{
freezeTableName: true// Model tableName will be the same as the model name
}
});

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się