Tengo una función para recuperar el perfil de un usuario.
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);
});
});
Cuando se llama a la función "buscar", muestra la instrucción select en la consola donde se inició el servidor.
Executing (default): SELECT `id`, `firstName`, `lastName`, `emailAddress`, `password`, `passwordRecoveryToken`, `passwordRecoveryTokenExpire`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`emailAddress` = '[email protected]' LIMIT 1;
¿Hay alguna manera de hacer que esto no se muestre? ¿Alguna marca que configuré en un archivo de configuración en alguna parte?
node.js
sequelize.js
thenetimp
fuente
fuente
exclude
en esta página sequelize.readthedocs.io/en/latest/docs/querying/#attributesRespuestas:
Cuando cree su objeto Sequelize, pase
false
allogging
parámetro:Para más opciones, consulte los documentos .
fuente
logging
opción debería ser una función .Si se utiliza el archivo 'config / config.json', agregue 'logging': false al config.json en este caso en la sección de configuración de desarrollo.
fuente
Como en otras respuestas, solo puede configurar
logging:false
, pero creo que es mejor que deshabilitar el registro por completo, simplemente puede adoptar los niveles de registro en su aplicación. A veces es posible que desee echar un vistazo a las consultas ejecutadas, por lo que puede ser mejor configurar Sequelize para iniciar sesión en el nivel detallado o de depuración. por ejemplo (estoy usando winston aquí como marco de registro pero puedes usar cualquier otro marco):Esto generará sentencias SQL solo si el nivel de registro de winston está configurado para depurar o reducir los niveles de depuración. Si el nivel de registro es de advertencia o la información, por ejemplo, SQL no se registrará
fuente
Todas estas respuestas se desactivan en el registro en el momento de la creación.
Pero, ¿qué pasa si necesitamos desactivar el inicio de sesión en tiempo de ejecución?
Por tiempo de ejecución quiero decir después de inicializar el
sequelize
objeto usando lanew Sequelize(..
función.Me asomé a la fuente de Github , encontré una manera de desactivar el inicio de sesión en tiempo de ejecución.
fuente
Basado en esta discusión, construí esto
config.json
que funciona perfectamente:fuente
Aquí está mi respuesta:
Breve : Estaba usando
typeorm
como una biblioteca ORM. Entonces, para establecer el nivel de registro de consultas, he usado la siguiente opción en lugar de establecer directamente la opción de registro comofalse
.Solución: nombre de archivo - ormconfig.ts
Y, en la variable de entorno, establezca
DB_QUERY_LEVEL
como ["consulta", "error"].Resultado: como resultado, se registrará solo cuando la consulta tenga un error; de lo contrario, no lo hará.
Enlace de referencia: typeorm db query logc doc
¡Espero que esto ayude! Gracias.
fuente
Estoy usando Sequelize ORM 6.0.0 y estoy usando "logging": falso como el resto, pero publiqué mi respuesta para la última versión del ORM.
Nota: Estoy almacenando mis secretos en un archivo de configuración
.env
observando la metodología de 12 factores.fuente
Resolví muchos problemas usando el siguiente código. Los problemas fueron: -
fuente