mongoose experiments

This commit is contained in:
cyber-dream 2022-09-04 04:08:48 +03:00
parent 218450fcb5
commit b1bc2b10f6
10 changed files with 131 additions and 100 deletions

View File

@ -1,7 +1,6 @@
import express from "express"; import express from "express";
import routes from "./routes/routes"; import routes from "./routes/routes";
import minecraft_routes from "./routes/minecraft/minecraft_routes"; import minecraft_routes from "./routes/public/minecraft/minecraft_routes";
class App { class App {
public server; public server;

View File

@ -1,3 +0,0 @@
import { IMinecraftServer } from './helios_distribution'
export Min

View File

@ -1,7 +1,9 @@
import { type } from "os"
import internal from "stream" import internal from "stream"
import { Url } from "url" import { Url } from "url"
//import {mongoose} from "mongoose"
interface HeliosDistribution{ export interface IHeliosDistribution{
version:string version:string
//servers:Minecraft_1_12_2_server //servers:Minecraft_1_12_2_server
} }
@ -13,20 +15,20 @@ export interface IMinecraftServer{
icon:string icon:string
version:string version:string
address:string address:string
/*minecraftVersion:string minecraftVersion:string
mainServer:boolean // mainServer:boolean
autoconnect:boolean // autoconnect:boolean
share_required_mods:ForgeMod[] share_required_mods:IForgeMod[]
client_required_mods:ForgeMod[] // client_required_mods:ForgeMod[]
client_optional_mods:ForgeMod[]*/ // client_optional_mods:ForgeMod[]
} }
interface ForgeMod{ export interface IForgeMod{
id:ForgeModId id:ForgeModId
name:string name:string
type:string type:string
artifact:ForgeModArtifact artifact:ForgeModArtifact
sub_modules:ForgeMod[] sub_modules:IForgeMod[]
} }
interface ForgeModId{ interface ForgeModId{
@ -41,6 +43,4 @@ interface ForgeModArtifact{
url:Url url:Url
} }
export default HeliosDistribution{ export type ForgeMod = IForgeMod
}

View File

@ -0,0 +1,54 @@
import {IHeliosDistribution, IMinecraftServer} from "./helios_distribution"
import { Schema, model, connect, Model } from 'mongoose';
const SolFileSchema = new Schema({
id:{ type: String, required: true }
})
const minecraftServerSchema = new Schema({
id: { type: String, required: true },
name: { type: String, required: true },
description: { type: String, required: true },
icon: { type: String, required: true },
minecraftVersion: { type: String, required: true },
address: { type: String, required: true },
share_required_mods:[ SolFileSchema ]
});
const MinecraftServer = model('Server', minecraftServerSchema)
export default class Minecraft{
constructor(){
this.getDistribution = this.getDistribution.bind(this)
}
public async getDistribution(){
var servers_string = {id:"asd"}
await connect('mongodb://172.17.0.2:27017/minecraft');
var servers = await MinecraftServer.find()
console.log(servers)
servers_string = servers[0].toObject()
return servers_string
}
public async writeServer(){
await connect('mongodb://172.17.0.2:27017/minecraft');
const newSrv = new MinecraftServer({
id: 'kek',
name: 'shmek',
description: 'omg',
icon: 'asldka;lskd',
minecraftVersion: '1.12.2',
address: '123465',
})
await newSrv.save()
}
private async getServers(): Promise<IMinecraftServer[]>{
var servers:IMinecraftServer[] = []
await connect('mongodb://172.17.0.2:27017/minecraft');
return servers
}
}

View File

@ -0,0 +1,51 @@
import { url } from 'inspector';
import { Schema, model, connect } from 'mongoose';
import { IMinecraftServer, IForgeMod } from "../minecraft/1.12.2/helios_distribution"
const forgeModSchema = new Schema<IForgeMod>({
id:{type: String, required: true}
})
// 2. Create a Schema corresponding to the document interface.
const serverSchema = new Schema<IMinecraftServer>({
id: { type: String, required: true },
name: { type: String, required: true },
description: { type: String, required: true },
icon: { type: String, required: true },
minecraftVersion: { type: String, required: true },
address: { type: String, required: true },
share_required_mods: forgeModSchema
});
// 3. Create a Model.
const Server = model<IMinecraftServer>('helios', serverSchema);
async function run() {
// 4. Connect to MongoDB
await connect('mongodb://172.17.0.2:27017/minecraft');
const server = new Server({
id:"WesterosCraft-1.12.2",
name:"WesterosCraft 1.12.2 Production Server",
description:"New 1.12.2 production server.",
icon:"http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-prod.png",
version:"4.6.5",
address:"mc.westeroscraft.com:25565",
minecraftVersion:"1.12.2",
});
await server.save();
}
export default class GetMinecraftServers
{
constructor(){
this.writeTestModel = this.writeTestModel.bind(this)
}
public writeTestModel(){
run()
}
}

View File

@ -1,44 +0,0 @@
import { Schema, model, connect } from 'mongoose';
// 1. Create an interface representing a document in MongoDB.
interface IUser {
name: string;
email: string;
avatar?: string;
}
// 2. Create a Schema corresponding to the document interface.
const userSchema = new Schema<IUser>({
name: { type: String, required: true },
email: { type: String, required: true },
avatar: String
});
// 3. Create a Model.
const User = model<IUser>('User', userSchema);
async function run() {
// 4. Connect to MongoDB
await connect('mongodb://172.17.0.2:27017/test');
const user = new User({
name: 'Bill',
email: 'bill@initech.com',
avatar: 'https://i.imgur.com/dM7Thhn.png'
});
await user.save();
console.log(user.email); // 'bill@initech.com'
}
export default class GetMinecraftServers
{
constructor(){
this.writeTestModel = this.writeTestModel.bind(this)
}
public writeTestModel(){
run()
}
}

View File

@ -1,23 +0,0 @@
import { Router } from "express";
import Minecraft from "../../../minecraft/1.12.2/helios_distribution"
import GetMinecraftServers from "../../../mongoose/db_connect"
const minecraft = new Minecraft //Is this right?
const routes = Router();
const test_db = new GetMinecraftServers
routes.get("/", (req, res) => {
return res.json({ message: "yes" });
});
routes.get("/distribution", (req, res) =>{
res.send(minecraft.generateDistribution())
});
routes.get("/test", (req, res) =>{
res.send(test_db.writeTestModel())
});
export default routes;

View File

@ -1,11 +0,0 @@
import { Router } from "express";
import minecraft_1_12_2_routes from './1_12_2/routes'
const routes = Router();
routes.get("/", (req, res) => {
return res.json({ message: "Hello World" });
});
routes.use
routes.use('/1.12.2', minecraft_1_12_2_routes)
export default routes;

View File

@ -1,17 +1,25 @@
import { Router } from "express"; import { Router } from "express";
import Minecraft from "../../../../minecraft/1.12.2/helios_distribution" import Minecraft from "../../../../modules/minecraft/1.12.2/minecraft_distribution"
import GetMinecraftServers from "../../../../modules/mongoose/db_connect"
const minecraft = new Minecraft //Is this right? const minecraft = new Minecraft //Is this right?
const routes = Router(); const routes = Router();
const test_db = new GetMinecraftServers
routes.get("/", (req, res) => { routes.get("/", (req, res) => {
return res.json({ message: "yes" }); return res.json({ message: "yes" });
}); });
routes.get("/distribution", (req, res) =>{ routes.get("/distribution", (req, res) =>{
res.send(minecraft.generateDistribution()) res.send(minecraft.getDistribution())
});
routes.get("/writeServer", (req, res) =>{
res.send(minecraft.writeServer())
});
routes.get("/test", (req, res) =>{
res.send(test_db.writeTestModel())
}); });
export default routes; export default routes;

View File

@ -1,5 +1,5 @@
import { Router } from "express"; import { Router } from "express";
import minecraft_1_12_2_routes from './1_12_2/routes' import minecraft_1_12_2_routes from "./1_12_2/routes"
const routes = Router(); const routes = Router();