Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Express.js और MySQL मॉडल + सत्यापन

MySQL पर आधारित मॉडल बनाने का कोई सबसे अच्छा तरीका नहीं है। आप मॉडलों को संभालने के अपने तरीके को लागू कर सकते हैं, लेकिन Node.js के लिए कई ORM मॉड्यूल उपलब्ध हैं, मैं उनमें से किसी एक का उपयोग करने का सुझाव दूंगा।

मैं Sequelize का उपयोग करता हूं मॉडल को परिभाषित करने और कई एक्सप्रेस अनुप्रयोगों में डेटाबेस के साथ बातचीत करने के लिए ओआरएम के रूप में। नोड के लिए एक और ओआरएम जिसमें मैंने भाग लिया है वह है Bookshelf.js , लेकिन कई अन्य हैं। किसका उपयोग करना है यह आपकी प्राथमिकताओं और आवश्यकताओं पर निर्भर करता है।

संपादित करें:उपयोग का उदाहरण

Sequelize मॉडल का उपयोग करते समय मैं निम्नलिखित संरचना का सुझाव देता हूं:आपके प्रोजेक्ट में एक निर्देशिका जिसका नाम प्रत्येक मॉडल के लिए एक फ़ाइल के साथ मॉडल और Sequelize वातावरण को लोड करने के लिए एक index.js फ़ाइल है। अगर आप CLI को सीक्वलाइज़ करें का उपयोग करते हैं , इसकी कई विधियाँ भी हैं जो इस संरचना का अनुसरण करती हैं।

index.js

const fs = require("fs");
const path = require("path");
const Sequelize = require("sequelize");
let sqize = new Sequelize({
  host     : "1.2.3.4",
  port     : 1234,
  database : "testDb",
  username : "pino",
  password : "[email protected]",
  dialect: 'mysql',
});

fs.readdirSync(__dirname).filter(function(file) {
  return (file.indexOf(".") !== 0) && (file !== "index.js");
}).forEach(function(file) {
  let model = sequelize.import(path.join(__dirname, file));
  db[model.name] = model;
});

Object.keys(db).forEach(function(modelName) {
  if ("associate" in db[modelName]) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;
db.op        = Sequelize.Op;

module.exports = {
  sqize: sqize,
  Sequelize: Sequelize,
  op: Sequelize.Op
};

users.js

module.exports = function (sequelize, DataTypes) {
  let users = sequelize.define('users', {
    username: {
      type: DataTypes.STRING(255),
      allowNull: true
    },
    firstname: {
      type: DataTypes.STRING(255),
      allowNull: true
    },
    secondname: {
      type: DataTypes.STRING(255),
      allowNull: true
    },
    email: {
      type: DataTypes.STRING(255),
      allowNull: true
    },
    type: {
      type: DataTypes.INTEGER(4),
      allowNull: true,
      references: {
        model: 'users_type',
        key: 'id'
      }
    },
    password: {
      type: DataTypes.STRING(255),
      allowNull: true
    },
    salt: {
      type: DataTypes.STRING(255),
      allowNull: true
    }
  }, {
    tableName: 'users'
  });

  users.associate = function (models) {
    users.belongsTo(models.user_types, {
      foreignKey: "type",
      as: "userType"
    });
    users.hasMany(models.user_logs, {
      foreignKey: "user_id",
      as: "userLogs"
    });
  };

  return users;
};

अधिक पैरामीटर और विवरण के लिए, आप Sequelize doc देख सकते हैं, जो बहुत ही सरल और उदाहरणों और विवरणों से भरा है।

इसके अलावा, मैंने कुछ ECMAScript 6 का उपयोग किया है, इसलिए यदि आपका Node.js का संस्करण उनका समर्थन नहीं करता है, तो इस कोड को बदलें या ट्रांसपाइल करें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक ज़िप कोड की निर्दिष्ट दूरी के भीतर सभी ज़िप कोड खोजें

  2. JSON फ़ाइल में mysql मानों को डंप करने के लिए PHP का उपयोग करें

  3. अल्पविराम सीमांकित स्ट्रिंग के साथ मैसकल खोज

  4. Yii MySql क्वेरी निष्पादित करें

  5. यदि मौजूद नहीं है तो MySQL डेटाबेस बनाएं