Sequelize のステップ 1 で苦労しています。私はチュートリアルを読みましたが、何か基本的なことを見逃しているに違いありません。なぜなら、私が間違っていることを理解しようとしてすでに 1 日以上費やしているからです。
以下は、Mocha を使用して記述した単体テストです。
var db = require("../../db.js").sequelize;
var DataTypes = require("sequelize");
var _table = db.define('users', {
name: DataTypes.STRING,
email: DataTypes.STRING
}, {
timestamps: false
});
var assert = require("assert")
describe('Users', function(){
describe('#save()', function(){
it('should save a user', function(){
_table
.build({name: 'test', email: 'a@a.com'})
.save()
.success(function(o){
console.log("saved");
console.log(o.values);
}).error(function(error) {
console.log("++++++++++");
console.log(error);
});
})
})
})
正常に動作し、今のところアサートを削除しました。問題は、どちらのコンソール ログも表示されず、成功でもエラーでもないことです。さらに、データベースには行がありません。
db.js は、db 構成を使用して Sequelize JS のインスタンスを作成するのに役立つ単なるユーティリティ ファイルです。既に console.dir を作成してインスタンスを調べたところ、次のようになります。
{ options:
{ dialect: 'mysql',
host: 'localhost',
port: 3306,
protocol: 'tcp',
define: {},
query: {},
sync: {},
logging: [Function],
omitNull: false,
queue: true,
native: false,
replication: false,
pool: { maxConnections: 10, minConnections: 0, maxIdleTime: 1000 } },
config:
{ database: 'beacon',
username: 'beacon',
password: 'beacon',
host: 'localhost',
port: 3306,
pool: { maxConnections: 10, minConnections: 0, maxIdleTime: 1000 },
protocol: 'tcp',
queue: true,
native: false,
replication: false,
maxConcurrentQueries: undefined },
daoFactoryManager: { daos: [ [Object], [Object] ], sequelize: [Circular] },
connectorManager:
{ sequelize: [Circular],
client: null,
config:
{ database: 'beacon',
username: 'beacon',
password: 'beacon',
host: 'localhost',
port: 3306,
pool: [Object],
protocol: 'tcp',
queue: true,
native: false,
replication: false,
maxConcurrentQueries: undefined },
disconnectTimeoutId: null,
queue: [],
activeQueue: [ [Object] ],
maxConcurrentQueries: 50,
poolCfg: { maxConnections: 10, minConnections: 0, maxIdleTime: 1000 },
pendingQueries: 0,
useReplicaton: false,
useQueue: true,
pool:
{ destroy: [Function],
acquire: [Function],
borrow: [Function],
release: [Function],
returnToPool: [Function],
drain: [Function],
destroyAllNow: [Function],
getPoolSize: [Function],
getName: [Function],
availableObjectsCount: [Function],
waitingClientsCount: [Function] },
isConnecting: false },
importCache: {},
queryInterface:
{ sequelize: [Circular],
QueryGenerator:
{ createTableQuery: [Function],
dropTableQuery: [Function],
renameTableQuery: [Function],
showTablesQuery: [Function],
addColumnQuery: [Function],
removeColumnQuery: [Function],
changeColumnQuery: [Function],
renameColumnQuery: [Function],
selectQuery: [Function],
insertQuery: [Function],
updateQuery: [Function],
deleteQuery: [Function],
incrementQuery: [Function],
addIndexQuery: [Function],
showIndexQuery: [Function],
removeIndexQuery: [Function],
getWhereConditions: [Function],
hashToWhereConditions: [Function],
attributesToSQL: [Function],
findAutoIncrementField: [Function],
addQuotes: [Function],
removeQuotes: [Function],
options: [Object] } } }
これで、INSERT ステートメントが画面に記録されますが、インスタンスがデータベースに到達することはありません。私は何を間違っていますか?