我是新的node.js和ORM的,我使用書架的數據庫查詢。 所以,我檢查了書架的文件,當我試圖建立一個查詢,以我現有的架構在MySQL它引發以下錯誤:builder = bookshelf.knex(tableNameOrBuilder);
TypeError: bookshelf.knex is not a function
at Child.builderFn [as _builder] (/home/mauricio/techday/techday- node/node_modules/bookshelf/lib/bookshelf.js:314:27)
at Object.query (/home/mauricio/techday/techday-node/node_modules/bookshelf/lib/helpers.js:44:23)
at Child.query (/home/mauricio/techday/techday-node/node_modules/bookshelf/lib/model.js:1243:30)
at Function.Model.(anonymous function).Collection.(anonymous function) [as query] (/home/mauricio/techday/techday-node/node_modules/bookshelf/lib/bookshelf.js:333:28)
at Object.<anonymous> (/home/mauricio/techday/techday-node/app.js:20:2)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)
at bootstrap_node.js:542:3
這裏是我的查詢:
user
.query('where', 'usuario', '=', 'admin')
.fetch()
.then(function(user) {
console.log(user)
});
這裏是我的db.js:
'use strict'
var db = require('bookshelf')(knex);
var securePassword = require ('bookshelf-secure-password');
db.plugin(securePassword);
db.plugin('registry');
var knex = require('knex')({
client: 'mysql',
connection: {
host: 'localhost',
user: 'root',
password: 'password',
database: 'test',
charset: 'utf8'
}
});
module.exports = db;
現在我user.js的
var db = require('../Commons/db.js');
var bcrypt = require('bcrypt-nodejs');
var user = db.Model.extend({
tableName: 'usuario',
hasSecurePassword: 'contraseña'
});
module.exports = db.model('user',user);
怎麼樣'db'和'user'界定?請添加定義兩者的代碼。 – flaviodesousa
我已經添加了用戶和數據庫。 –