我正在努力完成 Sequelize 的第 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 语句,但该实例从未进入数据库。我究竟做错了什么?