Mam funkcję pobierania profilu użytkownika.
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);
});
});
Po wywołaniu funkcji „znajdź” wyświetla ona instrukcję select na konsoli, na której serwer został uruchomiony.
Executing (default): SELECT `id`, `firstName`, `lastName`, `emailAddress`, `password`, `passwordRecoveryToken`, `passwordRecoveryTokenExpire`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`emailAddress` = '[email protected]' LIMIT 1;
Czy istnieje sposób, aby nie wyświetlać tego? Jakieś flagi, które ustawiłem gdzieś w pliku konfiguracyjnym?
node.js
sequelize.js
następnie
źródło
źródło
exclude
na tej stronie sequelize.readthedocs.io/en/latest/docs/querying/#attributesOdpowiedzi:
Podczas tworzenia obiektu Sequelize przejdź
false
dologging
parametru:Aby uzyskać więcej opcji, sprawdź dokumenty .
źródło
logging
opcja powinna być funkcją .Jeśli używany jest plik „config / config.json”, dodaj „logowanie”: false do pliku config.json w tym przypadku w sekcji konfiguracji programowania.
źródło
Podobnie jak w innych odpowiedziach, możesz po prostu ustawić
logging:false
, ale myślę, że lepiej niż całkowicie wyłączyć rejestrowanie, możesz po prostu uwzględnić poziomy dziennika w swojej aplikacji. Czasami możesz rzucić okiem na wykonane zapytania, więc lepiej jest skonfigurować Sequelize do logowania na poziomie szczegółowym lub debugowania. na przykład (używam tutaj Winstona jako frameworku rejestrowania, ale możesz użyć dowolnego innego frameworka):Spowoduje to wyświetlenie instrukcji SQL tylko wtedy, gdy dla poziomu dziennika winston ustawiono debugowanie lub niższe poziomy debugowania. Jeśli poziom dziennika jest ostrzeżony lub informacje, na przykład SQL nie zostanie zarejestrowany
źródło
Wszystkie te odpowiedzi są wyłączone podczas rejestrowania .
Ale co, jeśli musimy wyłączyć środowisko wykonawcze logowania ?
Przez środowisko uruchomieniowe mam na myśli po zainicjowaniu
sequelize
obiektu za pomocąnew Sequelize(..
funkcji.Zajrzałem do źródła github , znalazłem sposób na wyłączenie logowania w środowisku wykonawczym.
źródło
Na podstawie tej dyskusji zbudowałem to,
config.json
co działa idealnie:źródło
Oto moja odpowiedź:
Krótko : Używałem
typeorm
jako biblioteki ORM. Aby ustawić poziom rejestrowania zapytania, użyłem następującej opcji zamiast bezpośredniego ustawienia opcji rejestrowania jakofalse
.Rozwiązanie: Nazwa pliku - ormconfig.ts
I w zmiennej środowiska ustaw
DB_QUERY_LEVEL
jako [„zapytanie”, „błąd”].Wynik: w rezultacie będzie się logować tylko wtedy, gdy zapytanie zawiera błąd, w przeciwnym razie nie będzie.
Odsyłacz referencyjny : typorm db zapytanie rejestrowanie doc
Mam nadzieję że to pomoże! Dzięki.
źródło
Używam Sequelize ORM 6.0.0 i używam „logowania”: false jako reszta, ale opublikowałem moją odpowiedź na najnowszą wersję ORM.
Uwaga: Moje sekrety przechowuję w pliku konfiguracyjnym,
.env
przestrzegając metodologii 12-czynnikowej.źródło
Rozwiązałem wiele problemów, używając następującego kodu. Problemy były:
źródło