এসকিউএলকে কোয়েরি কার্যকর করার সময় কনসোলে আউটপুট থেকে সিক্যুইলাইজ আটকাবেন?


187

একজন ব্যবহারকারীর প্রোফাইল পুনরুদ্ধার করার জন্য আমার একটি ফাংশন রয়েছে।

app.get('/api/user/profile', function (request, response)
{
  // Create the default error container
  var error = new Error();

  var User = db.User;
  User.find({
    where: { emailAddress: request.user.username}
  }).then(function(user)
  {
    if(!user)
    {
      error.status = 500; error.message = "ERROR_INVALID_USER"; error.code = 301;
      return next(error);
    }

    // Build the profile from the user object
    profile = {
      "firstName": user.firstName,
      "lastName": user.lastName,
      "emailAddress": user.emailAddress
    }
    response.status(200).send(profile);
  });
});

যখন "ফাইন্ড" ফাংশন বলা হয় তখন এটি কনসোলের যেখানে নির্বাচিত সার্ভারটি শুরু হয়েছিল সেখানে নির্বাচনী বিবৃতি প্রদর্শন করে।

Executing (default): SELECT `id`, `firstName`, `lastName`, `emailAddress`, `password`, `passwordRecoveryToken`, `passwordRecoveryTokenExpire`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`emailAddress` = 'johndoe@doe.com' LIMIT 1;

এটি প্রদর্শিত না হওয়ার উপায় আছে কি? কিছু পতাকা আমি কোথাও একটি কনফিগার ফাইলে সেট করেছি?


আমার একটি প্রশ্ন আছে, মনে করুন যে আমি পাসওয়ার্ড ক্ষেত্রটি ফাইন্ডরক্রিয়েট () পদ্ধতিতে ফিরে আসতে চাই না। কিভাবে আমি এটি করতে পারব ?
— সুনীল শর্মা

@ সুনীলশর্মা এই বৈশিষ্ট্যটি বাদ দিন, excludeএই পৃষ্ঠায় সিক্যুয়ালাইজ করুন.ড্রেডহেডোকস.আইও
— ক্যারেল ফ্রেজটেক ২

উত্তর:


355

আপনি যখন নিজের সিকুয়ালাইজ অবজেক্ট তৈরি করেন, falseতখন loggingপ্যারামিটারে পাস করুন :

var sequelize = new Sequelize('database', 'username', 'password', {

  // disable logging; default: console.log
  logging: false

});

আরও বিকল্পের জন্য, দস্তাবেজগুলি পরীক্ষা করুন ।


23
সবেমাত্র সম্পর্কিত প্রশ্নটির উপর নতুন প্রশ্ন শুরু করার চেয়ে আপনি নতুন প্রশ্ন শুরু করার চেয়ে ভাল starting
— thenetimp

ধন্যবাদ, এটি কাজ করছে তবে এটি সম্পাদিত প্রতিটি প্রশ্নের জন্য একটি সাদা জায়গা দেয়। আপনি কি আমাকে সাহায্য করতে পারেন ..
— টিজো টম

1
আপাতত, loggingবিকল্পটি একটি ফাংশন হওয়া উচিত ।
— লি হান কয়েল

1
সিক্যুয়ালাইজ ভি 4 ব্যবহার করার সময় এটির কোনও প্রভাব আছে বলে মনে হয় না। কেউ কি রেজোলিউশন পেয়েছে?
— গার্বিত

35

যদি 'কনফিগারেশন / কনফিগারেশন.জসন' ফাইল ব্যবহার করা হয় তবে 'লগিং' যুক্ত করুন: এই ক্ষেত্রে উন্নয়ন কনফিগারেশন বিভাগের অধীনে কনফিগারেশন জাজন এর সাথে মিথ্যা।

  // file config/config.json
  {
      {
      "development": {
        "username": "username",
        "password": "password",
        "database": "db_name",
        "host": "127.0.0.1",
        "dialect": "mysql",
        "logging": false
      },
      "test": {
    ...
   }

26

অন্যান্য উত্তরের মতো, আপনি কেবল সেট করতে পারেন logging:false, তবে লগিং সম্পূর্ণরূপে অক্ষম করার চেয়ে আমি আরও ভাল মনে করি, আপনি কেবল আপনার অ্যাপ্লিকেশানে লগের স্তরগুলি আলিঙ্গন করতে পারেন। কখনও কখনও আপনি মৃত্যুদন্ডপ্রাপ্ত জিজ্ঞাসাগুলি একবার দেখে নিতে পারেন তাই লেভেল ভার্বোস বা ডিবাগ এ লগ করতে সিক্যুইলাইজ কনফিগার করা আরও ভাল। উদাহরণস্বরূপ (আমি এখানে লগিং ফ্রেমওয়ার্ক হিসাবে উইনস্টন ব্যবহার করছি তবে আপনি অন্য কোনও কাঠামো ব্যবহার করতে পারেন):

var sequelize = new Sequelize('database', 'username', 'password', {
  logging: winston.debug
});

উইনস্টন লগ স্তর ডিবাগ বা নিম্ন ডিবাগিং স্তরকে সেট করা থাকলে এটি এসকিউএল স্টেটমেন্টগুলি আউটপুট দেবে। লগ স্তর যদি সতর্ক করা হয় বা তথ্য হিসাবে উদাহরণস্বরূপ এসকিউএল লগ করা হবে না


6

এই উত্তরগুলির সবগুলি তৈরির সময় লগিং বন্ধ করে দেওয়া হয়।

কিন্তু যদি আমাদের রানটাইমটিতে লগিং বন্ধ করার প্রয়োজন হয় ?

রানটাইম দ্বারা আমি ফাংশন sequelizeব্যবহার করে অবজেক্টটি শুরু করার পরে বোঝাতে চাইছি new Sequelize(..।

আমি গিথুব উত্সে উঁকি দিয়েছি , রানটাইমে লগিং বন্ধ করার একটি উপায় খুঁজে পেয়েছি।

// Somewhere your code, turn off the logging
sequelize.options.logging = false

// Somewhere your code, turn on the logging
sequelize.options.logging = true 

2

এই আলোচনার ভিত্তিতে, আমি এটি তৈরি করেছি config.jsonযা পুরোপুরি কার্যকর হয়:

{
  "development": {
    "username": "root",
    "password": null,
    "logging" : false,
    "database": "posts_db_dev",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "operatorsAliases": false 
  }
}

0

আমি সিকুইলাইজ ওআরএম 6.0.0 ব্যবহার করছি এবং "লগিং" ব্যবহার করছি: বাকী হিসাবে মিথ্যা তবে ওআরএম এর সর্বশেষ সংস্করণের জন্য আমার উত্তর পোস্ট করেছি।

const sequelize = new Sequelize(
        process.env.databaseName,
        process.env.databaseUser,
        process.env.password,
        {
            host: process.env.databaseHost,
            dialect: process.env.dialect,
            "logging": false,
            define: {
                // Table names won't be pluralized.
                freezeTableName: true,
                // All tables won't have "createdAt" and "updatedAt" Auto fields.
                timestamps: false
            }
        }
    );

দ্রষ্টব্য: আমি আমার গোপনীয়তাগুলি .env12-ফ্যাক্টর পদ্ধতিটি পর্যবেক্ষণ করে একটি কনফিগারেশন ফাইলে সংরক্ষণ করছি ।


0

আমার উত্তর এখানে:

সংক্ষিপ্ত : আমি typeormএকটি ওআরএম গ্রন্থাগার হিসাবে ব্যবহার করছিলাম । সুতরাং, ক্যোয়ারী লগিং স্তরটি সেট করতে আমি লগিং বিকল্পটি সরাসরি হিসাবে সেট করার পরিবর্তে নিম্নলিখিত বিকল্পটি ব্যবহার করেছি false।

সমাধান: ফাইলের নাম - ormconfig.ts

{
    'type': process.env.DB_DRIVER,
    'host': process.env.DB_HOST,
    'port': process.env.DB_PORT,
    'username': process.env.DB_USER,
    'password': process.env.DB_PASS,
    'database': process.env.DB_NAME,
    'migrations': [process.env.MIGRATIONS_ENTITIES],
    'synchronize': false,
    'logging': process.env.DB_QUERY_LEVEL,
    'entities': [
        process.env.ORM_ENTITIES
    ],
    'cli': {
        'migrationsDir': 'migrations'
     }
}

এবং, এনভ্রোয়নমেন্ট ভেরিয়েবল এ DB_QUERY_LEVEL["ক্যোয়ারী", "ত্রুটি"] হিসাবে সেট করে ।

ফলাফল: ফলস্বরূপ এটি কেবল তখনই লগ হবে যখন কোয়েরিতে ত্রুটি থাকলে অন্যথায় তা ঘটবে না।

রেফ লিঙ্ক: টাইপর্ম ডিবি ক্যোয়ারী লগিং ডক

আশাকরি এটা সাহায্য করবে! ধন্যবাদ।


0

আমি নিম্নলিখিত কোড ব্যবহার করে অনেকগুলি সমস্যার সমাধান করেছি। সমস্যাগুলি হ'ল: -

  1. ডাটাবেসের সাথে সংযুক্ত হচ্ছে না
  2. ডাটাবেস সংযোগ প্রত্যাখ্যান সমস্যা
  3. কনসোলে লগগুলি পরিত্রাণ পাচ্ছেন (এটির জন্য নির্দিষ্ট)।
const sequelize = new Sequelize("test", "root", "root", {
  host: "127.0.0.1",
  dialect: "mysql",
  port: "8889",
  connectionLimit: 10,
  socketPath: "/Applications/MAMP/tmp/mysql/mysql.sock",
  // It will disable logging
  logging: false
});

লোকেরা এখনও এমএএমপি ব্যবহার করে?
— গত ১

হ্যাঁ, উন্নয়নের জন্য যদি আপনার কাছে আরও একটি সেরা নিখরচায় বিকল্প থাকে তবে দয়া করে আমাকে জানান, ধন্যবাদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.