From 43d16143ebe94abb8381a03434e14af8f2f78e9c Mon Sep 17 00:00:00 2001 From: 1549469775 <1549469775@qq.com> Date: Mon, 28 Feb 2022 00:34:30 +0800 Subject: [PATCH] page --- log/SQL.log | 4392 ++++++++++++++++++++++++++++++++++++ package.json | 2 + pnpm-lock.yaml | 204 +- public/css/common/style.css | 3 +- public/css/common/style.scss | 5 +- public/css/page/css.css | 71 + public/js/page/css.js | 0 source/auth/index.ts | 9 +- source/db/index.ts | 17 - source/db/init.ts | 17 - source/model/Color.ts | 27 - source/model/User.ts | 42 - source/models/Color.ts | 23 + source/route/api/index.ts | 7 - source/route/api/upload/_upload.ts | 82 + source/route/api/upload/index.ts | 29 + source/route/api/user/index.ts | 6 +- source/route/color/index.ts | 46 - source/route/demo/_upload.ts | 82 - source/route/demo/index.ts | 35 - source/route/index/index.ts | 9 +- source/route/route.txt | 10 +- template/views/css.pug | 27 + template/views/index.pug | 41 +- template/views/user.pug | 41 + 25 files changed, 4830 insertions(+), 397 deletions(-) create mode 100644 public/css/page/css.css create mode 100644 public/js/page/css.js delete mode 100644 source/db/index.ts delete mode 100644 source/db/init.ts delete mode 100644 source/model/Color.ts delete mode 100644 source/model/User.ts create mode 100644 source/models/Color.ts delete mode 100644 source/route/api/index.ts create mode 100644 source/route/api/upload/_upload.ts create mode 100644 source/route/api/upload/index.ts delete mode 100644 source/route/color/index.ts delete mode 100644 source/route/demo/_upload.ts delete mode 100644 source/route/demo/index.ts create mode 100644 template/views/css.pug create mode 100644 template/views/user.pug diff --git a/log/SQL.log b/log/SQL.log index 8b0cd16..2b5aa14 100644 --- a/log/SQL.log +++ b/log/SQL.log @@ -12624,3 +12624,4395 @@ inMemory: 0, readWriteMode: 6 } +[2022-02-26T18:25:27.357] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:25:27.393] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:25:27.395] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:25:27.397] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:25:27.397] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:21.667] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:21.692] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:21.694] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:21.695] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:21.696] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T18:26:26.716] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:54:25.685] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:54:25.719] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:54:25.722] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:54:25.723] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:54:25.727] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:58:21.528] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:58:21.569] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:58:21.571] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:58:21.572] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-26T19:58:21.573] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:36:33.449] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:36:33.484] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:36:33.486] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:36:33.488] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:36:33.489] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:15.337] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:15.376] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:15.378] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:15.379] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:15.380] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:38:57.436] [DEBUG] SQL - Executing (default): SELECT `id`, `username`, `password`, `email`, `createdAt`, `updatedAt` FROM `Users` AS `User` WHERE `User`.`username` = 'xieyaxin' LIMIT 1; { + plain: true, + raw: false, + logging: [Function: bound ], + where: "`User`.`username` = 'xieyaxin'", + limit: 1, + hooks: true, + rejectOnEmpty: false, + originalAttributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + attributes: [ 'id', 'username', 'password', 'email', 'createdAt', 'updatedAt' ], + tableNames: [ 'Users' ], + type: 'SELECT', + model: User, + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:44:01.071] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:44:01.124] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:44:01.128] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:44:01.131] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:44:01.133] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:30.677] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:30.699] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:30.701] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:30.702] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:30.703] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:52.288] [DEBUG] SQL - Executing (default): SELECT 1+1 AS result { + plain: true, + raw: true, + logging: [Function: bound ], + type: 'SELECT', + uuid: 'default', + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:52.309] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Colors` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `color` VARCHAR(255), `title` VARCHAR(255), `describe` VARCHAR(255)); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:52.312] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Colors`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: false, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Colors', singular: 'Color' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:52.314] [DEBUG] SQL - Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `email` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + uniqueKeys: {}, + type: 'RAW', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} +[2022-02-27T19:45:52.316] [DEBUG] SQL - Executing (default): PRAGMA INDEX_LIST(`Users`) { + plain: false, + raw: true, + logging: [Function: bound ], + timestamps: true, + validate: {}, + freezeTableName: false, + underscored: false, + paranoid: false, + rejectOnEmpty: false, + whereCollection: null, + schema: null, + schemaDelimiter: '', + defaultScope: {}, + scopes: {}, + indexes: [], + name: { plural: 'Users', singular: 'User' }, + omitNull: false, + sequelize: Sequelize { + options: { + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + logging: [Function: bound ], + omitNull: false, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + hooks: {}, + retry: [Object], + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db' + }, + config: { + database: undefined, + username: undefined, + password: null, + host: 'localhost', + port: undefined, + pool: {}, + protocol: 'tcp', + native: false, + ssl: undefined, + replication: false, + dialectModule: null, + dialectModulePath: null, + keepDefaultTimezone: undefined, + dialectOptions: undefined + }, + dialect: SqliteDialect { + sequelize: [Circular *1], + connectionManager: [ConnectionManager], + queryGenerator: [SQLiteQueryGenerator], + queryInterface: [SQLiteQueryInterface] + }, + queryInterface: SQLiteQueryInterface { + sequelize: [Circular *1], + queryGenerator: [SQLiteQueryGenerator] + }, + models: { Color: Color, User: User }, + modelManager: ModelManager { models: [Array], sequelize: [Circular *1] }, + connectionManager: ConnectionManager { + sequelize: [Circular *1], + config: [Object], + dialect: [SqliteDialect], + versionPromise: null, + dialectName: 'sqlite', + pool: [Pool], + connections: [Object], + lib: [Object] + } + }, + hooks: true, + dialect: 'sqlite', + dialectModule: null, + dialectModulePath: null, + protocol: 'tcp', + define: {}, + query: {}, + sync: {}, + timezone: '+00:00', + clientMinMessages: 'warning', + standardConformingStrings: true, + native: false, + replication: false, + ssl: undefined, + pool: {}, + quoteIdentifiers: true, + retry: { max: 5, match: [ 'SQLITE_BUSY: database is locked' ] }, + transactionType: 'DEFERRED', + isolationLevel: null, + databaseVersion: 0, + typeValidation: false, + benchmark: false, + minifyAliases: false, + logQueryParameters: false, + storage: '/home/dash/code/demo/hapi-demo/source/db/data.db', + force: false, + type: 'SHOWINDEXES', + uuid: 'default', + inMemory: 0, + readWriteMode: 6 +} diff --git a/package.json b/package.json index a584295..3ba2e92 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,10 @@ "@hapi/vision": "^6.1.0", "@noderun/hapi-router": "link:packages\\hapi-router", "@types/hapi__cookie": "^10.1.4", + "@types/node": "^17.0.21", "dotenv": "^10.0.0", "ejs": "^3.1.6", + "fast-glob": "^3.2.11", "file-type": "^16.5.0", "log4js": "^6.4.1", "ts-node": "^10.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3cfb2c4..f8d7749 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,9 +9,11 @@ specifiers: '@types/hapi__cookie': ^10.1.4 '@types/hapi__hapi': ^20.0.10 '@types/hapi__vision': ^5.5.3 + '@types/node': ^17.0.21 bcrypt: ^5.0.1 dotenv: ^10.0.0 ejs: ^3.1.6 + fast-glob: ^3.2.11 file-type: ^16.5.0 hapi-auth-jwt2: ^10.2.0 hapi-sequelizejs: ^4.5.0 @@ -53,11 +55,13 @@ devDependencies: '@hapi/vision': 6.1.0 '@noderun/hapi-router': link:packages/hapi-router '@types/hapi__cookie': registry.npmmirror.com/@types/hapi__cookie/10.1.4 + '@types/node': 17.0.21 dotenv: 10.0.0 ejs: 3.1.6 + fast-glob: 3.2.11 file-type: 16.5.0 log4js: registry.npmmirror.com/log4js/6.4.1 - ts-node: 10.0.0_typescript@4.3.2 + ts-node: 10.0.0_994e9dd6eccb2c889707fc5c400a4503 ts-node-dev: 1.1.6_typescript@4.3.2 tsconfig-paths: 3.9.0 typescript: 4.3.2 @@ -343,6 +347,27 @@ packages: - supports-color dev: false + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + /@sideway/address/4.1.2: resolution: {integrity: sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==} dependencies: @@ -397,10 +422,13 @@ packages: resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} dev: true + /@types/node/17.0.21: + resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} + /@types/readable-stream/2.3.10: resolution: {integrity: sha512-xwSXvAv9x4B9Vj88AMZnFyEVLilz1EBxKvRUhGqIF4nJpRQBSTm7jS236X4Y9Y2qPsVvaMxwrGJlNhLHEahlFQ==} dependencies: - '@types/node': registry.npmmirror.com/@types/node/15.12.2 + '@types/node': 17.0.21 safe-buffer: 5.2.1 dev: true @@ -705,7 +733,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: registry.npmmirror.com/fsevents/2.3.2 + fsevents: 2.3.2 /chownr/1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -765,6 +793,12 @@ packages: dev: false optional: true + /commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + requiresBuild: true + dev: false + optional: true + /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} @@ -1078,11 +1112,28 @@ packages: dev: false optional: true + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + dev: true + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: false optional: true + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + /file-type/16.5.0: resolution: {integrity: sha512-OxgWA9tbL8N/WP00GD1z8O0MiwQKFyWRs1q+3FhjdvcGgKqwxcejyGWso3n4/IMU6DdwV+ARZ4A7TTnPkDcSiw==} engines: {node: '>=8'} @@ -1148,11 +1199,18 @@ packages: minipass: 3.1.3 dev: false + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + /fstream/1.0.12: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + graceful-fs: 4.2.6 inherits: registry.npmmirror.com/inherits/2.0.4 mkdirp: 0.5.5 rimraf: 2.7.1 @@ -1239,6 +1297,9 @@ packages: url-parse-lax: 3.0.0 dev: false + /graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + /handlebars/4.7.7: resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} engines: {node: '>=0.4.7'} @@ -1249,7 +1310,7 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: registry.npmmirror.com/uglify-js/3.13.9 + uglify-js: 3.13.9 dev: false /hapi-auth-jwt2/10.2.0: @@ -1782,7 +1843,7 @@ packages: resolution: {integrity: sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + graceful-fs: 4.2.6 parse-json: 2.2.0 pify: 2.3.0 pinkie-promise: 2.0.1 @@ -1886,6 +1947,19 @@ packages: trim-newlines: 1.0.0 dev: true + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + /mime-db/1.48.0: resolution: {integrity: sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==} engines: {node: '>= 0.6'} @@ -1998,6 +2072,27 @@ packages: engines: {node: 4.x || >=6.0.0} dev: false + /node-gyp/3.8.0: + resolution: {integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==} + engines: {node: '>= 0.8.0'} + hasBin: true + requiresBuild: true + dependencies: + fstream: 1.0.12 + glob: registry.npmmirror.com/glob/7.1.7 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + mkdirp: 0.5.5 + nopt: 3.0.6 + npmlog: 4.1.2 + osenv: 0.1.5 + request: 2.88.2 + rimraf: 2.7.1 + semver: 5.3.0 + tar: 2.2.2 + which: 1.3.1 + dev: false + optional: true + /node-pre-gyp/0.11.0: resolution: {integrity: sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==} deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' @@ -2209,7 +2304,7 @@ packages: resolution: {integrity: sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + graceful-fs: 4.2.6 pify: 2.3.0 pinkie-promise: 2.0.1 dev: true @@ -2386,6 +2481,10 @@ packages: dev: false optional: true + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + /random-bytes/1.0.0: resolution: {integrity: sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=} engines: {node: '>= 0.8'} @@ -2536,6 +2635,11 @@ packages: any-promise: 1.3.0 dev: false + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rimraf/2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true @@ -2549,6 +2653,12 @@ packages: glob: registry.npmmirror.com/glob/7.1.7 dev: false + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: false @@ -2707,7 +2817,7 @@ packages: node-addon-api: 3.2.1 node-pre-gyp: 0.11.0 optionalDependencies: - node-gyp: registry.npmmirror.com/node-gyp/3.8.0 + node-gyp: 3.8.0 dev: false /sshpk/1.16.1: @@ -3003,7 +3113,7 @@ packages: typescript: 4.3.2 dev: true - /ts-node/10.0.0_typescript@4.3.2: + /ts-node/10.0.0_994e9dd6eccb2c889707fc5c400a4503: resolution: {integrity: sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==} engines: {node: '>=12.0.0'} hasBin: true @@ -3022,6 +3132,7 @@ packages: '@tsconfig/node12': 1.0.8 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.1 + '@types/node': 17.0.21 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 @@ -3094,6 +3205,14 @@ packages: hasBin: true dev: true + /uglify-js/3.13.9: + resolution: {integrity: sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + /uid-safe/2.1.5: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} engines: {node: '>= 0.8'} @@ -3264,7 +3383,7 @@ packages: /wkx/0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} dependencies: - '@types/node': registry.npmmirror.com/@types/node/15.12.2 + '@types/node': 17.0.21 dev: false /wordwrap/1.0.0: @@ -3312,7 +3431,7 @@ packages: lodash.isequal: 4.5.0 validator: 10.11.0 optionalDependencies: - commander: registry.npmmirror.com/commander/2.20.3 + commander: 2.20.3 dev: false registry.npmmirror.com/@hapi/b64/5.0.0: @@ -3430,7 +3549,7 @@ packages: '@types/hapi__catbox': registry.npmmirror.com/@types/hapi__catbox/10.2.4 '@types/hapi__mimos': registry.npmmirror.com/@types/hapi__mimos/4.1.4 '@types/hapi__shot': registry.npmmirror.com/@types/hapi__shot/4.1.2 - '@types/node': registry.npmmirror.com/@types/node/15.12.2 + '@types/node': 17.0.21 joi: registry.npmmirror.com/joi/17.4.0 registry.npmmirror.com/@types/hapi__mimos/4.1.4: @@ -3445,7 +3564,7 @@ packages: name: '@types/hapi__shot' version: 4.1.2 dependencies: - '@types/node': registry.npmmirror.com/@types/node/15.12.2 + '@types/node': 17.0.21 registry.npmmirror.com/@types/hapi__vision/5.5.3: resolution: {integrity: sha512-R4+r9345+5LCM8/0OQ1J8UVVPwnOwMdUVtPrtJE4oNbZ31+rLSy/bLoGpuZJwjROeC006YXbibnRF1hcVQFjGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__vision/-/hapi__vision-5.5.3.tgz} @@ -3461,11 +3580,6 @@ packages: name: '@types/mime-db' version: 1.43.1 - registry.npmmirror.com/@types/node/15.12.2: - resolution: {integrity: sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-15.12.2.tgz} - name: '@types/node' - version: 15.12.2 - registry.npmmirror.com/balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} name: balanced-match @@ -3479,14 +3593,6 @@ packages: balanced-match: registry.npmmirror.com/balanced-match/1.0.2 concat-map: 0.0.1 - registry.npmmirror.com/commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} - name: commander - version: 2.20.3 - requiresBuild: true - dev: false - optional: true - registry.npmmirror.com/date-format/4.0.3: resolution: {integrity: sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-format/-/date-format-4.0.3.tgz} name: date-format @@ -3545,15 +3651,6 @@ packages: name: fs.realpath version: 1.0.0 - registry.npmmirror.com/fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} - name: fsevents - version: 2.3.2 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - registry.npmmirror.com/glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.1.7.tgz} name: glob @@ -3583,7 +3680,7 @@ packages: source-map: registry.npmmirror.com/source-map/0.6.1 wordwrap: registry.npmmirror.com/wordwrap/1.0.0 optionalDependencies: - uglify-js: registry.npmmirror.com/uglify-js/3.13.9 + uglify-js: 3.13.9 dev: false registry.npmmirror.com/hapi-sequelizejs/4.5.0_854bf76d9bf23fc83de64ddfc031ac7f: @@ -3645,7 +3742,7 @@ packages: dependencies: universalify: registry.npmmirror.com/universalify/2.0.0 optionalDependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 + graceful-fs: 4.2.6 dev: true registry.npmmirror.com/log4js/6.4.1: @@ -3699,29 +3796,6 @@ packages: version: 2.6.2 dev: false - registry.npmmirror.com/node-gyp/3.8.0: - resolution: {integrity: sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-gyp/-/node-gyp-3.8.0.tgz} - name: node-gyp - version: 3.8.0 - engines: {node: '>= 0.8.0'} - hasBin: true - requiresBuild: true - dependencies: - fstream: 1.0.12 - glob: registry.npmmirror.com/glob/7.1.7 - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.6 - mkdirp: 0.5.5 - nopt: 3.0.6 - npmlog: 4.1.2 - osenv: 0.1.5 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.3.0 - tar: 2.2.2 - which: 1.3.1 - dev: false - optional: true - registry.npmmirror.com/once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} name: once @@ -3761,16 +3835,6 @@ packages: - supports-color dev: true - registry.npmmirror.com/uglify-js/3.13.9: - resolution: {integrity: sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.13.9.tgz} - name: uglify-js - version: 3.13.9 - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: false - optional: true - registry.npmmirror.com/universalify/2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} name: universalify diff --git a/public/css/common/style.css b/public/css/common/style.css index 0f144a6..4b1f1bc 100644 --- a/public/css/common/style.css +++ b/public/css/common/style.css @@ -2,8 +2,7 @@ html, body { background-color: #f5f5f5; - height: 100%; - overflow: hidden; + min-height: 100%; } .left-list { diff --git a/public/css/common/style.scss b/public/css/common/style.scss index b4aeaf9..b2e1d69 100644 --- a/public/css/common/style.scss +++ b/public/css/common/style.scss @@ -1,8 +1,7 @@ html, body { - background-color: #f5f5f5; - height: 100%; - overflow: hidden; + background-color: #f5f5d5; + min-height: 100%; } .left-list { diff --git a/public/css/page/css.css b/public/css/page/css.css new file mode 100644 index 0000000..17db75a --- /dev/null +++ b/public/css/page/css.css @@ -0,0 +1,71 @@ +html, body{ + padding: 0; + margin: 0; +} + +*{ + cursor: pointer; + position: relative; +} + + +.container { + width: 900px; + margin: 0 auto; + } + +.title{ + padding-left: 20px; + position: sticky; + top: 0; + background-color: white; + z-index: 10; +} + +.author:hover::before{ + content: attr(title); + position: absolute; + top: 0; + left: 0; + background-color: yellow; + text-indent: 0; + font-size: 12px; + opacity: .4; + padding: 1px 8px; + pointer-events: none; +} +.author:hover::after{ + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + border: 1px solid yellow; + pointer-events: none; +} + +.word{ + text-indent: 30px; + padding: 5px 10px; +} + +.word .comment{ + display: none; + position: relative; +} +.word:hover .comment{ + display: block; + position: absolute; + left: 100%; + top: 0; + font-size: 14px; + padding: 6px; + box-sizing: border-box; + text-indent: 0; + background-color: rgb(177, 177, 177); + max-width: 180px; + width: 100%; + max-height: 100%; + overflow-y: auto; +} \ No newline at end of file diff --git a/public/js/page/css.js b/public/js/page/css.js new file mode 100644 index 0000000..e69de29 diff --git a/source/auth/index.ts b/source/auth/index.ts index 102f8d0..dea36af 100644 --- a/source/auth/index.ts +++ b/source/auth/index.ts @@ -1,7 +1,8 @@ -import User from "@/model/User"; +import { Req } from "#/global"; -export async function validateJwt(decoded, request, h) { +export async function validateJwt(decoded, request: Req, h) { if (decoded.id) { + const User = request.getModel("User") const result = await User.findOne({ where: { id: decoded.id } }); if (result == null) { return { isValid: false }; @@ -12,9 +13,9 @@ export async function validateJwt(decoded, request, h) { } } -export async function validateSession(request, session) { +export async function validateSession(request: Req, session) { console.log(`session id: ${session.id}`); - + const User = request.getModel("User") if (session.id) { const result = await User.findOne({ where: { id: session.id } }); if (result == null) { diff --git a/source/db/index.ts b/source/db/index.ts deleted file mode 100644 index f5c58ad..0000000 --- a/source/db/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Sequelize, DataTypes } from "sequelize"; -import path from "path"; -export const sequelize = new Sequelize({ - dialect: "sqlite", - storage: path.resolve(__dirname, "./data.db"), - logging: loggerSQL.debug.bind(loggerSQL) // Alternative way to use custom logger, displays all messages -}); - -export async function connect(){ - try { - await sequelize.authenticate(); - console.log('Connection has been established successfully.'); - } catch (error) { - console.error('Unable to connect to the database:', error); - } -} - diff --git a/source/db/init.ts b/source/db/init.ts deleted file mode 100644 index 14327d5..0000000 --- a/source/db/init.ts +++ /dev/null @@ -1,17 +0,0 @@ - -import {connect, sequelize} from "@/db/index" - -import "@/model/User" -import "@/model/Color" - -const argv = require('minimist')(process.argv.slice(2)); - -const isForce = !!(argv._.indexOf("force")!=-1) || false // 会把之前的表删除,慎用 -const isAlter = !!(argv._.indexOf("alter")!=-1) || false - -connect().then(()=>{ - sequelize.sync({force: isForce,alter: isAlter}); - // User.sync({force: isForce,alter: isAlter}) - // Color.sync({force: isForce,alter: isAlter}) - // ColorChunk.sync({force: isForce,alter: isAlter}) -}) diff --git a/source/model/Color.ts b/source/model/Color.ts deleted file mode 100644 index 00f5815..0000000 --- a/source/model/Color.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { sequelize, connect } from "@/db/index"; -import { DataTypes } from "sequelize"; -/** - * 图片解析表: - */ -const Color = sequelize.define( - "Color", - { - // 图片地址 - color: { - type: DataTypes.STRING - }, - title: { - type: DataTypes.STRING, - allowNull: true - }, - describe: { - type: DataTypes.STRING, - allowNull: true - }, - }, - { - timestamps: false, - } -); - -export { Color }; diff --git a/source/model/User.ts b/source/model/User.ts deleted file mode 100644 index 86d9de1..0000000 --- a/source/model/User.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {sequelize, connect} from "@/db/index" -import {DataTypes} from "sequelize"; -// 全自定义写法 -// const User = sequelize.define('User', { -// id: { -// type: DataTypes.STRING(50), -// primaryKey: true -// }, -// username: { -// type: DataTypes.STRING, -// allowNull: false -// }, -// password: { -// type: DataTypes.STRING, -// allowNull: false -// }, -// createdAt: DataTypes.BIGINT, -// updatedAt: DataTypes.BIGINT, -// version: DataTypes.BIGINT -// }, { -// timestamps: false -// }); -/** - * 用户表: - * 用户名-密码-邮箱-性别-婚姻状况 - */ -const User = sequelize.define('User', { - username: { - type: DataTypes.STRING, - allowNull: false - }, - password: { - type: DataTypes.STRING, - allowNull: false - }, - email: { - type: DataTypes.STRING, - } -}, { - -}); -export default User; diff --git a/source/models/Color.ts b/source/models/Color.ts new file mode 100644 index 0000000..b6daa45 --- /dev/null +++ b/source/models/Color.ts @@ -0,0 +1,23 @@ +module.exports = function (sequelize, DataTypes) { + const Color = sequelize.define( + "Color", + { + // 图片地址 + color: { + type: DataTypes.STRING + }, + title: { + type: DataTypes.STRING, + allowNull: true + }, + describe: { + type: DataTypes.STRING, + allowNull: true + }, + }, + { + timestamps: false, + } + ); + return Color +}; \ No newline at end of file diff --git a/source/route/api/index.ts b/source/route/api/index.ts deleted file mode 100644 index 484450e..0000000 --- a/source/route/api/index.ts +++ /dev/null @@ -1,7 +0,0 @@ - - -export default class{ - index(request, h) { - return "asdasd"; - } -} diff --git a/source/route/api/upload/_upload.ts b/source/route/api/upload/_upload.ts new file mode 100644 index 0000000..e48f1c9 --- /dev/null +++ b/source/route/api/upload/_upload.ts @@ -0,0 +1,82 @@ +import path from "path"; +import { gSuccess, gFail, uploadDir, uploadPath } from "@/util"; + +const fs = require("fs"); +const multiparty = require("multiparty"); +const FileType = require("file-type"); + +function saveFile(file) { + return new Promise(async (resolve, reject) => { + const filename = file.originalFilename; + const uploadedPath = file.path; + const filetype = await FileType.fromFile(uploadedPath); + console.log(filetype); + if (filetype && (filetype.ext == "jpg" || filetype.ext == "png")) { + const dstPath = path.resolve(uploadDir, filename); + fs.rename(uploadedPath, dstPath, function (err) { + if (err) { + console.log("rename error: " + err); + reject(); + } else { + resolve(uploadPath + "/" + filename); + } + }); + } else { + fs.unlinkSync(uploadedPath); + reject(new Error(filename + "文件不是图片")); + } + }); +} + +export default function (req, h) { + const form = new multiparty.Form({ + uploadDir: uploadDir, //路径需要对应自己的项目更改 + /*设置文件保存路径 */ + encoding: "utf-8", + /*编码设置 */ + maxFilesSize: 20000 * 1024 * 1024, + /*设置文件最大值 20MB */ + keepExtensions: true, + /*保留后缀*/ + }); + return new Promise(async (resolve, reject) => { + form.on("part", function (part) { + console.log(part.filename); + }); + form.on("progress", function (bytesReceived, bytesExpected) { + if (bytesExpected === null) { + return; + } + + var percentComplete = (bytesReceived / bytesExpected) * 100; + console.log( + "the form is " + Math.floor(percentComplete) + "%" + " complete" + ); + }); + form.parse(req.payload, async function (err, fields, files) { + // console.log(err, fields, files); + + if (err) { + resolve(err.message); + return; + } + const errList = []; + const fileList = []; + for (let i = 0; i < files.file.length; i++) { + const file = files.file[i]; + try { + const dstPath = await saveFile(file); + fileList.push(dstPath); + } catch (error) { + errList.push(error.message); + } + } + if (errList.length) { + resolve(gFail(null, errList.join("\n"))); + return; + } + // resolve(h.view("views/upload.ejs")); + resolve([...new Set(fileList)]); + }); + }); +} diff --git a/source/route/api/upload/index.ts b/source/route/api/upload/index.ts new file mode 100644 index 0000000..204e558 --- /dev/null +++ b/source/route/api/upload/index.ts @@ -0,0 +1,29 @@ +import { config, method, route, swagger, validate } from "@noderun/hapi-router"; +import UploadFunc from "./_upload"; +import Joi from "joi"; +export default class { + index(request, h) { + return h.view("views/demo.ejs"); + } + + @config({ + payload: { + maxBytes: 20000 * 1024 * 1024, + output: "stream", + parse: false, + // multipart: true, + allow: "multipart/form-data", + } + }) + @method("POST") + @swagger("文件上传", "文件上传a ", ["sum", "api"]) + async upload(req, h) { + const startTime = new Date().getTime(); + const res = await UploadFunc(req, h); + const endTime = new Date().getTime(); + console.log( + `该请求处理时间为:${Number(endTime - startTime).toFixed(2)}ms` + ); + return res; + } +} diff --git a/source/route/api/user/index.ts b/source/route/api/user/index.ts index ab37110..a3318ee 100644 --- a/source/route/api/user/index.ts +++ b/source/route/api/user/index.ts @@ -7,7 +7,6 @@ import { config, } from "@noderun/hapi-router"; import { gSuccess, gFail } from "@/util"; -import User from "@/model/User"; import * as bcrypt from "bcrypt"; import * as jwt from "jsonwebtoken"; import * as Joi from "joi"; @@ -24,6 +23,7 @@ export default class { async register(request: Req, h: Res): ReturnValue { let { username, password, email } = request.payload as any; if (!username) username = email; + const User = request.getModel("User") logger.trace(username, email); try { const result = await User.findOne({ where: { username: username } }); @@ -56,6 +56,7 @@ export default class { @swagger("用户登录", "返回注册用户的信息", ["api"]) async login(request: Req, h: Res): ReturnValue { let { username, password } = request.payload as any; + const User = request.getModel("User") const result = await User.findOne({ where: { username: username } }); if (result == null) { return gFail(null, "不存在该用户"); @@ -79,6 +80,7 @@ export default class { @swagger("删除用户", "删除用户账号", ["sum"]) async del(request: Req, h: Res): ReturnValue { const { id } = request.auth.credentials; + const User = request.getModel("User") let result = await User.findOne({ where: { id: id } }); if (result == null) { return gFail(null, "不存在该用户"); @@ -97,7 +99,7 @@ export default class { async userinfo(request: Req, h: Res): ReturnValue { console.log(request); const { id } = request.auth.credentials; - + const User = request.getModel("User") let result = await User.findOne({ where: { id: id } }); if (result == null) { return gFail(null, "不存在该用户"); diff --git a/source/route/color/index.ts b/source/route/color/index.ts deleted file mode 100644 index d986644..0000000 --- a/source/route/color/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Color } from "@/model/Color"; -import { gFail, gSuccess } from "@/util"; -import Joi from "joi"; -import { auth, method, route, validate } from "@noderun/hapi-router"; - -export default class { - - index(request,h){ - return h.view('views/color.pug') - } - - @method("POST") - @route("/add") - @validate({ - payload: Joi.object({ - color: Joi.string().required(), - title: Joi.string(), - describe: Joi.string(), - }), - }) - async add(request, h) { - let { color, title, describe } = request.payload || {}; - try { - await Color.create({ color, title, describe }); - return gSuccess("success"); - } catch (error) { - request.log("error", error); - return gFail(null, "添加颜色失败"); - } - } - - @method("GET") - @route("/all_color") - async getAll(request, h) { - try { - let allColors = await Color.findAll(); - if (allColors == null) { - return gFail(null, "不存在颜色"); - } - return gSuccess(allColors, "success"); - } catch (error) { - request.log("error", error); - return gFail(null, "获取颜色失败"); - } - } -} diff --git a/source/route/demo/_upload.ts b/source/route/demo/_upload.ts deleted file mode 100644 index e48f1c9..0000000 --- a/source/route/demo/_upload.ts +++ /dev/null @@ -1,82 +0,0 @@ -import path from "path"; -import { gSuccess, gFail, uploadDir, uploadPath } from "@/util"; - -const fs = require("fs"); -const multiparty = require("multiparty"); -const FileType = require("file-type"); - -function saveFile(file) { - return new Promise(async (resolve, reject) => { - const filename = file.originalFilename; - const uploadedPath = file.path; - const filetype = await FileType.fromFile(uploadedPath); - console.log(filetype); - if (filetype && (filetype.ext == "jpg" || filetype.ext == "png")) { - const dstPath = path.resolve(uploadDir, filename); - fs.rename(uploadedPath, dstPath, function (err) { - if (err) { - console.log("rename error: " + err); - reject(); - } else { - resolve(uploadPath + "/" + filename); - } - }); - } else { - fs.unlinkSync(uploadedPath); - reject(new Error(filename + "文件不是图片")); - } - }); -} - -export default function (req, h) { - const form = new multiparty.Form({ - uploadDir: uploadDir, //路径需要对应自己的项目更改 - /*设置文件保存路径 */ - encoding: "utf-8", - /*编码设置 */ - maxFilesSize: 20000 * 1024 * 1024, - /*设置文件最大值 20MB */ - keepExtensions: true, - /*保留后缀*/ - }); - return new Promise(async (resolve, reject) => { - form.on("part", function (part) { - console.log(part.filename); - }); - form.on("progress", function (bytesReceived, bytesExpected) { - if (bytesExpected === null) { - return; - } - - var percentComplete = (bytesReceived / bytesExpected) * 100; - console.log( - "the form is " + Math.floor(percentComplete) + "%" + " complete" - ); - }); - form.parse(req.payload, async function (err, fields, files) { - // console.log(err, fields, files); - - if (err) { - resolve(err.message); - return; - } - const errList = []; - const fileList = []; - for (let i = 0; i < files.file.length; i++) { - const file = files.file[i]; - try { - const dstPath = await saveFile(file); - fileList.push(dstPath); - } catch (error) { - errList.push(error.message); - } - } - if (errList.length) { - resolve(gFail(null, errList.join("\n"))); - return; - } - // resolve(h.view("views/upload.ejs")); - resolve([...new Set(fileList)]); - }); - }); -} diff --git a/source/route/demo/index.ts b/source/route/demo/index.ts deleted file mode 100644 index 08612ad..0000000 --- a/source/route/demo/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { config, method, route, swagger, validate } from "@noderun/hapi-router"; -import UploadFunc from "./_upload"; -import Joi from "joi"; -export default class { - index(request, h) { - return h.view("views/demo.ejs"); - } - - @config({ - payload: { - maxBytes: 20000 * 1024 * 1024, - output: "stream", - parse: false, - // multipart: true, - allow: "multipart/form-data", - } - }) - @method("POST") - @swagger("文件上传", "文件上传a ", ["sum", "api"]) - async upload(req, h) { - const startTime = new Date().getTime(); - const res = await UploadFunc(req, h); - const endTime = new Date().getTime(); - console.log( - `该请求处理时间为:${Number(endTime - startTime).toFixed(2)}ms` - ); - return res; - } - - @route("/{path*}") - async 404(req, h) { - // 404页面 - return h.view("404.ejs"); - } -} diff --git a/source/route/index/index.ts b/source/route/index/index.ts index 4638f59..2adfec2 100644 --- a/source/route/index/index.ts +++ b/source/route/index/index.ts @@ -7,12 +7,16 @@ import { validate, } from "@noderun/hapi-router"; import { Req, Res, ReturnValue } from "#/global"; -import UploadFunc from "../demo/_upload"; import Joi from "joi"; -import User from "@/model/User"; import * as bcrypt from "bcrypt"; export default class Index { + + async css(request: Req, h:Res): ReturnValue{ + + return h.view("views/css.pug") + } + @auth() @config({ auth: { @@ -38,6 +42,7 @@ export default class Index { @route("/login") async login(request: Req, h: Res): ReturnValue { const { username, password } = request.payload as any; + const User = request.getModel("User") const account = await User.findOne({ where: { username: username } }); if (!account || !(await bcrypt.compare(password, account.password))) { diff --git a/source/route/route.txt b/source/route/route.txt index 0c059a9..ec92929 100644 --- a/source/route/route.txt +++ b/source/route/route.txt @@ -1,18 +1,14 @@ 所有路由路径: - 需要权限: GET /api + 需要权限: GET /api/upload + 需要权限: POST /api/upload/upload 不需权限: POST /api/user/register 需要权限: POST /api/user/logout 不需权限: POST /api/user/login 需要权限: DELETE /api/user/del 需要权限: GET /api/user/userinfo - 不需权限: GET /color - 不需权限: POST /color/add - 不需权限: GET /color/all_color - 不需权限: GET /demo/{path*} - 不需权限: GET /demo - 不需权限: POST /demo/upload 不需权限: GET /index/color 不需权限: GET /{path*} + 不需权限: GET /css 需要权限: GET / 不需权限: GET /login 不需权限: POST /login diff --git a/template/views/css.pug b/template/views/css.pug new file mode 100644 index 0000000..4cebed3 --- /dev/null +++ b/template/views/css.pug @@ -0,0 +1,27 @@ +extends /layout/layout + +block var + -title="终是无缘一别两欢" // 网页标题 + +block head + //- link(rel="stylesheet", href="/public/css/common/reset.css") + link(rel="stylesheet", href="/public/css/page/css.css") + +block content + .container + h1.title.author.word(title="xyx") 终是无缘一别两欢 + .comment 为啥要写这个文章 + div.author.word(title="xyx") 昨天看了我初中喜欢的人在空间发的一篇关于怀念初中的短篇小说吧,记录了他对一些记忆深刻的人的评价,而我也看到了我明明一直清楚,却不肯打心底接受的真相,他喜欢另外一个人,过往那么多的蛛丝马迹,那么多明明一件事就能看出他喜欢的人是她的真相,可我却是宁愿找借口自欺欺人,而今他给出坦白答案,他是放下了,才说出来,我是不是也该放下了,直到今日才明白我一个人自以为刻骨铭心的回忆,他也许早就忘怀,他的短篇小说故事中我没有丝言片语,也许若干年后他回想起来的只是我的名字,我只是个戏子,在他的故事中流着自己的泪,一个于他青春年华中不曾使他掀起过一丝波澜的模糊影子,而他不知道也永远不会知道,我的故事里他出现的很多,占了很多篇幅,我把他写进我的故事,因为他路过我心上,他踏着万千星河而来,又乘舟奔赴远方,我与春风皆过客,你携秋水揽星河。如今看来万般故事不过情伤,易水人去,明月如霜。 + .comment 我记得我无数次点开对话框,却只好失望的再关掉。我好多时候都想着万一他真的喜欢是她,我应该狠下心割舍这份感情,毕竟我不想太黯然神伤,我总是假装不在意远离他,不是因为讨厌陌生,而是太喜欢,又怕表现的明显,明知道没有什么可能不想陷入的更深。有那么一些瞬间,我假装不在意的擦肩而过,恰好离他很近,几分毫之差,却像是我们之间隔了银河的距离。走不进他的世界,却不想退出,现在想想初中三年除了开始在一个小组过,就没有再怎么交集过多少,毕业后反倒可以频繁的交集,我很珍惜,也行对他而言不过尔尔,充其量我只能算是他一个普通朋友。 + div.author.word(title="xyx") 他是无意穿堂风,却偏偏孤据引山洪。我是垂眉摆渡翁,却独独偏爱哝。 + .comment sada + div.author.word(title="xyx") 忽然想起那年夏日毕业之际,我送他的藏头巧妙情诗,还有在QQ的匿名坦白说,还有我第一次鼓起勇气隐晦的告白,毕业后我想着也许在我们笑着说再见时候深知再见遥遥无期,我想过叫他一起来学习预习新课,如今想想对我而言珍贵如斯,因为整整初中三年我都喜欢他,从始至终,从一开始和他一个组,就喜欢他。可是我也心里早已隐隐知道他喜欢的是另外一个人,我怕喜欢被他知道,也怕他不知道,又怕他装作不知道,总是假装不在意他,却总是留意他的消息,其实也是只要他没有说出来证实那个我知道他喜欢另外一个人的猜想,我就还抱着一丝期待,才没办法停止喜欢。这世上最安慰人的童话是,你挖空心思暗恋的人,他也挖空心思暗恋你,可惜这只是童话。 + div.author.word(title="xyx") 我记得我无数次点开对话框,却只好失望的再关掉。我好多时候都想着万一他真的喜欢是她,我应该狠下心割舍这份感情,毕竟我不想太黯然神伤,我总是假装不在意远离他,不是因为讨厌陌生,而是太喜欢,又怕表现的明显,明知道没有什么可能不想陷入的更深。有那么一些瞬间,我假装不在意的擦肩而过,恰好离他很近,几分毫之差,却像是我们之间隔了银河的距离。走不进他的世界,却不想退出,现在想想初中三年除了开始在一个小组过,就没有再怎么交集过多少,毕业后反倒可以频繁的交集,我很珍惜,也行对他而言不过尔尔,充其量我只能算是他一个普通朋友。 + div.author.word(title="xyx") 犹记得那次初三模考后不好,本来就难受从未那么差过,可是他在安慰另外一个人,我就更难过。多少次狠下心不想喜欢,却是告终。 + div.author.word(title="xyx") 比如毕业后,我开着玩笑跟他要生日礼物,终究是一纸空话,而我也知道也许他是不想给也就罢了,毕竟我什么都算不上吧,还有我那次想叫他去看电影,看最好的我们,我是有目的,听说电影的最后彩蛋是告白带来这里一起看电影的人是为了对他告白,可惜他没去,我和我一个很好的闺蜜去了电影院。 + div.author.word(title="xyx") 其实毕业后,我有过暗示,他懂了,懂了后是沉默,我早该明白的,沉默就是答案,躲闪就是答案,不过是留一个情面给我,互相都不要太过难堪,他也不知道,我很多说说日志写着是希望他能看到的,虽然有些不是我的原创,却带着我的心声,他不曾懂过。也不需要去懂了,从始至终感动的只有我自己。海底月捞不起,心上人不可及,向来心是看客心,奈何人是局中人。 + div.author.word(title="xyx") 这世间最难不过徒手摘月,喜欢而不得。 + div.author.word(title="xyx") 但我也想明白了,当我不能将一个人彻底忘却,就好好珍藏,封存在某个不易察觉的角落,午夜阑珊的时候悄悄想去。生不逢时,喜欢不逢人,所得之处皆是命数。白茶清欢无别事,我在等风也等你,苦酒折留今相离,无风无月也无你。 + div.author.word(title="xyx") 当年我说的凤囚凰那首诗也许他早已忘记,有美人兮,见之不忘,一日不见兮,思之如狂。凤飞遨翔兮,四海求凰,无奈佳人兮,不在东墙。将琴代语兮,聊写衷肠,愿言配德兮,携手相将。何时见许兮,慰我旁徨,不得于飞兮,使我沦亡,使我沦亡。本想暗示他我喜欢过他,终是没有说出口下阙。 + div.author.word(title="xyx") 蝴蝶很美,终究飞不过沧海,某些性质上我和他一样,都是内心远没有看起来的风平浪静,实则是波涛起伏,曾想过愿我如星君如月,夜夜流光相皎洁。 + div.author.word(title="xyx") 所谓执念,不过求而不得,不过难以割舍,不想错过,可终究情深是我,缘浅是我们,落花有意,流水无情,竟是付诸东流,若是如此,就这样吧,从此山水不相逢,愿若干年后的我们是最好的我们,蝴蝶很美,终究飞不过沧海,生生的两端,我们彼此站成岸。何来人间一惊鸿,不过人间一俗人。从此相忘江湖,若许不相识,也愿我遇到比你更好的人,说了那么多轻松多了,写下这些也是为了忘记放下他,虽然以前想过有时候放不下是最好的放下,无论他是否看得到,就这样吧,至此纪念我初中的喜欢,你是年少的欢喜,但也是过去时。我也要努力学习,考的比他更好。 diff --git a/template/views/index.pug b/template/views/index.pug index 1d57ddf..c689f50 100644 --- a/template/views/index.pug +++ b/template/views/index.pug @@ -1,41 +1,14 @@ extends /layout/layout block var - -title="时间就是金钱" // 网页标题 + -title="CSS选择器" // 网页标题 block head - link(rel="stylesheet", href="/public/css/common/reset.css") - link(rel="stylesheet", href="/public/css/views/index.css") + //- link(rel="stylesheet", href="/public/css/common/reset.css") + link(rel="stylesheet", href="/public/css/page/index.css") block content - div(class="container page") - ul(class="left-list") - li(class="item"): a(href="/login" ) 登录/注册 - div(class="userinfo") - div(class="img-wrapper user_avatar"): img(object-fit="scale-down" src="https://scpic.chinaz.net/files/pic/pic9/202106/apic33329.jpg") - div(class="user_detail") - -username = "谢亚昕" - - - describe = ` - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - 来自南方的小城,喜爱悠闲 - ` - .user_name #{username} - div(class="user_desc" title=describe ) - |#{describe} - - //- script(src='https://cdn.jsdelivr.net/npm/darkmode-js@1.5.7/lib/darkmode-js.min.js') - //- script. - //- function addDarkmodeWidget() { - //- new Darkmode().showWidget(); - //- } - //- window.addEventListener('load', addDarkmodeWidget); + .container + h1.title 终是无缘一别两欢 + div.word 昨天看了我初中喜欢的人在空间发的一篇关于怀念初中的短篇小说吧,记录了他对一些记忆深刻的人的评价,而我也看到了我明明一直清楚,却不肯打心底接受的真相,他喜欢另外一个人,过往那么多的蛛丝马迹,那么多明明一件事就能看出他喜欢的人是她的真相,可我却是宁愿找借口自欺欺人,而今他给出坦白答案,他是放下了,才说出来,我是不是也该放下了,直到今日才明白我一个人自以为刻骨铭心的回忆,他也许早就忘怀,他的短篇小说故事中我没有丝言片语,也许若干年后他回想起来的只是我的名字,我只是个戏子,在他的故事中流着自己的泪,一个于他青春年华中不曾使他掀起过一丝波澜的模糊影子,而他不知道也永远不会知道,我的故事里他出现的很多,占了很多篇幅,我把他写进我的故事,因为他路过我心上,他踏着万千星河而来,又乘舟奔赴远方,我与春风皆过客,你携秋水揽星河。如今看来万般故事不过情伤,易水人去,明月如霜。 + div.word(href="232") 他是无意穿堂风,却偏偏孤据引山洪。我是垂眉摆渡翁,却独独偏爱哝。 \ No newline at end of file diff --git a/template/views/user.pug b/template/views/user.pug new file mode 100644 index 0000000..1d57ddf --- /dev/null +++ b/template/views/user.pug @@ -0,0 +1,41 @@ +extends /layout/layout + +block var + -title="时间就是金钱" // 网页标题 + +block head + link(rel="stylesheet", href="/public/css/common/reset.css") + link(rel="stylesheet", href="/public/css/views/index.css") + +block content + div(class="container page") + ul(class="left-list") + li(class="item"): a(href="/login" ) 登录/注册 + div(class="userinfo") + div(class="img-wrapper user_avatar"): img(object-fit="scale-down" src="https://scpic.chinaz.net/files/pic/pic9/202106/apic33329.jpg") + div(class="user_detail") + -username = "谢亚昕" + - + describe = ` + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + 来自南方的小城,喜爱悠闲 + ` + .user_name #{username} + div(class="user_desc" title=describe ) + |#{describe} + + //- script(src='https://cdn.jsdelivr.net/npm/darkmode-js@1.5.7/lib/darkmode-js.min.js') + //- script. + //- function addDarkmodeWidget() { + //- new Darkmode().showWidget(); + //- } + //- window.addEventListener('load', addDarkmodeWidget);