Я использую sequelize в моем приложении Express.js с MySQL.
Все учетные данные базы данных хранятся в файле .env и являются правильными:
DATABASE_NAME= mydb
DATABASE_USERNAME= root
DATABASE_PASSWORD= pass
DATABASE_HOST= localhost
DATABASE_PORT= 3306
файл database.js:
require('dotenv').config();
const Sequelize = require('sequelize');
module.exports = new Sequelize(
process.env.DATABAST_NAME,
process.env.DATABASE_USERNAME,
process.env.DATABASE_PASSWORD,
{
port: process.env.DATABASE_PORT,
host: process.env.DATABASE_HOST,
dialect: 'mysql'
}
);
В модели пользователя:
const Sequelize = require('sequelize');
const db = require('../config/database');
module.exports = db.define('user', {
username: {
type: Sequelize.STRING,
unique: true,
primaryKey: true
},
email: {
type: Sequelize.STRING,
unique: true
},
password: {
type: Sequelize.STRING
},
}, {
freezeTableName: true,
timestamps: false
});
user.findAll().then(data=>{
console.log(data)
});
База данных 'mydb' имеет только одну таблицу 'user', при запуске приложения я получил ошибку:
Executing (default): SELECT `username`, `email`, `password` FROM `user` AS `user`;
Unhandled rejection SequelizeDatabaseError: No database selected
at Query.formatError (C:\Users\me\WebstormProjects\Backend\node_modules\sequelize\lib\dialects\mysql\query.js:241:16)
at Query.handler [as onResult] (C:\Users\me\WebstormProjects\Backend\node_modules\sequelize\lib\dialects\mysql\query.js:48:23)
at Query.execute (C:\Users\me\WebstormProjects\Backend\node_modules\mysql2\lib\commands\command.js:30:14)
at Connection.handlePacket (C:\Users\me\WebstormProjects\Backend\node_modules\mysql2\lib\connection.js:449:32)
at PacketParser.Connection.packetParser.p [as onPacket] (C:\Users\me\WebstormProjects\Backend\node_modules\mysql2\lib\connection.js:72:12)
at PacketParser.executeStart (C:\Users\me\WebstormProjects\Backend\node_modules\mysql2\lib\packet_parser.js:75:16)
at Socket.Connection.stream.on.data (C:\Users\me\WebstormProjects\Backend\node_modules\mysql2\lib\connection.js:79:25)
at Socket.emit (events.js:189:13)
at addChunk (_stream_readable.js:284:12)
at readableAddChunk (_stream_readable.js:265:11)
at Socket.Readable.push (_stream_readable.js:220:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
Я попытался проверить файл .env с кодом ниже, и все доступно для чтения:
var config = require ('dotenv'). Config ();console.log (config)
Я попытался добавить имя базы данных перед пользователем, в db.defind (), и у меня возникла та же проблема.
Пожалуйста, если у вас есть предложения, дайте мне знать.