[英]Unable to select data from DB via Sequelize in Node.js
為什么以下代碼給我一個錯誤?
var Sequelize = require('sequelize');
var sequelize = new Sequelize('schema', 'root', '');
var Foo = sequelize.define('Foo', {
name: Sequelize.STRING
});
sequelize.sync().then(function() {
Foo.create({
name: 'some name'
}).then(function() {
Foo.findAll({ where: { name: { $like: '%s%' } } }).then(function(result) {
console.log(result.rows.length);
});
});
});
輸出量
Executing (default): SELECT `id`, `name`, `createdAt`, `updatedAt` FROM `Foos` AS `Foo` WHERE `Foo`.`name` LIKE '%s%';
Unhandled rejection TypeError: Cannot read property 'length' of undefined
at null.<anonymous> (E:\work\projects\src\preorders\server.js:13:30)
at tryCatcher (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\util.js:26:23)
at Promise._settlePromiseFromHandler (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:507:31)
at Promise._settlePromiseAt (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:581:18)
at Promise._settlePromises (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:697:14)
at Async._drainQueue (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\async.js:123:16)
at Async._drainQueues (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\async.js:133:10)
at Async.drainQueues (E:\work\projects\src\preorders\node_modules\sequelize\node_modules\bluebird\js\main\async.js:15:14)
at process._tickCallback (node.js:419:13)
這是我的package.json
文件中的“ dependencies”選項:
"dependencies": {
"mysql": "^2.9.0",
"sequelize": "^3.13.0"
}
回調中的變量result
應該已經是結果數組,而不是一些保存行的對象。 將其更改為此將獲得行數:
Foo.findAll({ where: { name: { $like: '%s%' } } }).then(function(result) {
console.log(result.length);
});
轉儲所有數據以查看它是否確實是您想要的數據。
您的result
沒有rows
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.