繁体   English   中英

如何为每个注册的用户创建单独的数据库:Nodejs、express、mongodb 和 mongoose

[英]How to create seperate database for every user who register : Nodejs , express, mongodb & mongoose

这是我的用户架构:

import mongoose from "mongoose";
const { Schema } = mongoose;

//Address Schema
const addressSchema: mongoose.Schema = new Schema({});

//Talk about token saving planning
const userSchema: mongoose.Schema = new Schema(
  {
    name: {
      type: String,
      trim: true,
      required: true,
    },
    username: {
      type: String,
      trim: true,
    },
    email: {
      type: String,
      trim: true,
      required: true,
      unique: true,
    },
    mobile_number: {
      type: Number,
      trim: true,
      required: true,
      unique: true,
    },
    password: {
      type: String,
      required: true,
      min: 9,
      max: 30,
    },
    picture: {
      //AWS return object as response after upload
      type: {},
      //we will not provide any default
      //default will be set in frontend
    },
    
    
    
  },

  { timestamps: true }
);

export default mongoose.model("User", userSchema);


当 newuser 在 Nodejs & Express mongoose 中注册时,有什么方法或任何人知道如何创建新数据库。

我正在制作 crm ,我想为每个注册的用户创建单独的数据库。

 var MongoClient = require('mongodb').MongoClient;
    //Create a database named "userName":
    userCollection.foreach(name => {
    var url = "mongodb://localhost:27017/"+ name;
    MongoClient.connect(url, function(err, db) {
      if (err) throw err;
      console.log("Database created!");
      db.close();
    });
    }

是的,它可能在 mySql 中! 你可以试试 mongoose sequelize node js

const sequelizedb = new Sequelize("", MysqlInfo.username, MysqlInfo.password, {
    host: MysqlInfo.dbhost,
    dialect: "mysql"
  });

  let dbcreation = "CREATE DATABASE `" + username + "`;";
  sequelizedb.query(dbcreation).then(res => {
    const newDBconnection = new Sequelize(
      "mysql://" +
      MysqlInfo.username +
      ":" +
      MysqlInfo.password +
      "@" + MysqlInfo.dbhost + ":3306/" +
      schooldbname
    );

    newDBconnection
      .authenticate()
      .then(() => {
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM