Node js orm framework sequelize findOne et findAll un peu d'expérience

Node Js Orm Framework Sequelize Findone



Recently, I want to build a background with nodejs. The orm framework chose sequelize. I don't know anything else. If you know, you can recommend it to me. Enter the topic, see the document to create a new model User.js var Sequelize = require('sequelize')

var sequelize = require ('./../ dataconfig')

// // Créer un modèle
var User = sequelize.define ('utilisateur', {
id: {type: Sequelize.INTEGER, 'primaryKey': 'true'},
Nom d'utilisateur: {
type: Sequelize.STRING, // Spécifiez le type de valeur
field: 'user_name' // Spécifiez le nom de clé stocké dans la table
},
// Aucun champ n'est spécifié, le nom de la clé dans la table est le même que le nom de la clé de l'objet, qui est l'email
e-mail: {
type: Sequelize.STRING
}
}, {
// Si vrai, le nom et le modèle de la table sont identiques, c'est-à-dire l'utilisateur
// Le nom de table créé pour faux MySQL sera composé de plusieurs utilisateurs
// Si le nom de table spécifié est au pluriel, il restera inchangé
freezeTableName: vrai
})



exports.findAllUser = function () {
renvoie User.findAll ()
}



//test.js appel



var user = require ('./ model / user')

user.findAllUser (). then (résultat => {
console.log ('User data sss', résultat)
})

Exécutez node test.js



noeud js orm sequelize findOne findAll

??? C'est différent de ce que je pensais, j'ai juste besoin d'un tableau json. Qu'est-ce que c'est que les valeurs par défaut?

L'original renvoyé n'est pas un objet json, mais une couche d'instance enveloppée

La classe Instance représente une instance, représentant une ligne dans la base de données. Il ne peut pas être instancié par le constructeur, mais doit être créé par des méthodes telles que Model.find * ou Model.create.

L'instance contient une propriété dataValues, qui stocke les valeurs réelles sur lesquelles l'instance fonctionnera. Les valeurs de dataValues ​​sont accessibles des manières suivantes:

instance.field
// Équivalent à
instance.get ('champ')
// Équivalent à
instance.getDataValue ('champ')
Si un accesseur (getter) / setter (setter) est défini, les valeurs de champ sont accessibles à partir de celui-ci au lieu de dataValues. En règle générale, vous accéderez ou utiliserez directement get pour accéder à la valeur d'attribut, et getDataValue n'est utilisé que pour les accesseurs personnalisés.

Ou ajoutez {row: true}
noeud js orm sequelize findOne findAll

Exécutez à nouveau node test.js

noeud js orm sequelize findOne findAll

Succès, écrivez simplement à Xiaobai, sautez-le, ne plaisantez pas, glissé.

Réimprimé à: https://blog.51cto.com/13496570/2403426