防止 Sequelize 在执行查询时将 SQL 输出到控制台? [英] Prevent Sequelize from outputting SQL to the console on execution of query?

查看:48
本文介绍了防止 Sequelize 在执行查询时将 SQL 输出到控制台?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个功能可以检索用户的个人资料.

app.get('/api/user/profile', function (request, response){//创建默认错误容器var error = new Error();var 用户 = db.User;用户查找({其中:{电子邮件地址:request.user.username}}).then(函数(用户){如果(!用户){错误.状态= 500;error.message = "ERROR_INVALID_USER";错误代码 = 301;返回下一个(错误);}//从用户对象构建配置文件个人资料 = {名字":user.firstName,姓氏":user.lastName,电子邮件地址":user.emailAddress}response.status(200).send(profile);});});

当调用find"函数时,它会在启动服务器的控制台上显示选择语句.

正在执行(默认):SELECT `id`、`firstName`、`lastName`、`emailAddress`、`password`、`passwordRecoveryToken`、`passwordRecoveryTokenExpire`、`createdAt`、`updatedAt` FROM `Users` AS `User` WHERE `User`.`emailAddress` = 'johndoe@doe.com' LIMIT 1;

有没有办法让它不显示?我在某个配置文件中设置的一些标志?

解决方案

当您创建 Sequelize 对象时,将 false 传递给 logging 参数:

var sequelize = new Sequelize('database', 'username', 'password', {//禁用日志;默认值:console.log记录:假});

有关更多选项,请查看文档.>

I have a function to retrieve a user's profile.

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);
  });
});

When the "find" function is called it displays the select statement on the console where the server was started.

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

Is there a way to get this not to be display? Some flag that I set in a config file somewhere?

解决方案

When you create your Sequelize object, pass false to the logging parameter:

var sequelize = new Sequelize('database', 'username', 'password', {
  
  // disable logging; default: console.log
  logging: false

});

For more options, check the docs.

这篇关于防止 Sequelize 在执行查询时将 SQL 输出到控制台?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆