Node.js Sequelize可以用于连接到新数据库吗?
在设计一个简单的node.js项目时,我尝试使用Sequelize通过以下配置参数连接到mysql服务器:Node.js Sequelize可以用于连接到新数据库吗?,node.js,database,sequelize.js,database-connection,Node.js,Database,Sequelize.js,Database Connection,在设计一个简单的node.js项目时,我尝试使用Sequelize通过以下配置参数连接到mysql服务器: { dbname: users username: jimmy password: users params: host: localhost port: 3306 dialect: mysql } 虽然“用户”数据库还不存在。 我收到一个服务器错误: InternalServerError: {"name":"Seque
{ dbname: users
username: jimmy
password: users
params:
host: localhost
port: 3306
dialect: mysql }
虽然“用户”数据库还不存在。我收到一个服务器错误:
InternalServerError: {"name":"SequelizeConnectionError","parent":{"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"42000","sqlMessage":"Unknown database 'users'"},"original":{"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"42000","sqlMessage":"Unknown database 'users'"}}
但是Sequelize文档:表示Sequelize可以连接到新数据库。请问,如何使用Sequelize连接到
新的(不存在的)数据库?您应该再仔细阅读一遍(因为措辞确实令人困惑!)
新数据库与现有数据库的对比
如果您从零开始一个项目,并且您的数据库还不存在,请继续
可以从一开始就使用,以便自动创建
数据库中的每个表
另外,如果要使用Sequelize连接到
已经充满了表格和数据,这同样有效!续集
这两个案子都有你的保险
它将只连接到一个现有的数据库,它可以帮助您创建表,如果它们还不存在,但数据库必须存在,以便sequelize与它连接
在这个问题之后,我写信更新了文档,以减少混乱。希望能有帮助 找到了一个答案,答案是:
//create the sequelize instance omitting the database-name arg
const sequelize = new Sequelize("", "<db_user>", "<db_password>", {
dialect: "<dialect>"
});
return sequelize.query("CREATE DATABASE `<database_name>`;").then(data
=> {
// code to run after successful creation.
});
var SQUser;
var sequlz;
async function connectDB() {
sequlz =
new Sequelize("", "jimmy", "users", {host: "localhost", port: 3306, dialect: "mysql"});
await sequlz.query("CREATE DATABASE users;");
await sequlz.query("Use users;");
SQUser = sequlz.define('Table',
{
// define table schema
});
return SQUser.sync();
};
//use sequelize to populate the table
async function create() {
const SQUser = await connectDB();
return SQUser.create(
//values
);
}