您好,登錄后才能下訂單哦!
sequelize 的findOne 與findAll 的使用
Js
User.js:
var Sequelize = require('sequelize');
var sequelize = require('./../dataconfig');
// // 創建 model
var User = sequelize.define('user', {
id: { type: Sequelize.INTEGER, 'primaryKey': 'true' },
userName: {
type: Sequelize.STRING, // 指定值的類型
field: 'user_name' // 指定存儲在表中的鍵名稱
},
// 沒有指定 field,表中鍵名稱則與對象鍵名相同,為 email
email: {
type: Sequelize.STRING
}
}, {
// 如果為 true 則表的名稱和 model 相同,即 user
// 為 false MySQL創建的表名稱會是復數 users
// 如果指定的表名稱本就是復數形式則不變
freezeTableName: true
});
exports.findAllUser = function () {
return User.findAll();
}
寫個測試類 test.js:
//test.js 調用
var user = require('./model/user');
user.findAllUser().then(result => {
console.log('用戶數據sss', result)
})
運行
node test.js
???跟我想的不一樣呀,我只要一個json數組就可以了 defaultvalues 是什么鬼?
原來返回的不是json對象,而是包裝了一層的 Instance
Instance類表示一個實例,表示數據庫中的一行。它不能通過構造函數實例化,而應該通過Model.find*或Model.create等方法創建。
實例中包含一個dataValues屬性,其中存儲了實例實際所要操作的值。dataValues中的值可以通過以下幾種方式訪問:
instance.field
// 等價于
instance.get('field')
// 等價于
instance.getDataValue('field')
如果定義了訪問器(getter)/設置器(setter),字段值從其中訪問而不是從dataValues。一般會直接訪問或使用get來訪問屬性值,而getDataValue只用于自定義的訪問器。
或者加上{row:true}
再次運行 node test.js
成功,僅僅寫給小白,大佬請略過,不要笑話我,溜了溜了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。