Shellsec

Fuld version: Database til website og spil
Du ser lige nu en skrabet udgave af vores indhold. Se den fulde version med ordentlig formatering.
Hej.
Jeg har fået den vanvittige idé om at lave et 3D spil med 2D grafik med nodejs til sockets, express og resten skulle laves med three.js og webgl. Jeg skal så både bruge en database til min hjemmeside og til mit spil, men de skal også kunne arbejde sammen. Ellers laver jeg en samlet.
Spørgsmål er bare hvilken database skal jeg lave? Har hørt en lille fugl synge om at der skulle være forskel på diverse database der nu findes i dag og nogle er bedre til web og spil end andre m.m :)

Samtidig så er jeg også interesseret i at vide om man overhoved kan gemme eller kryptere sin database forbindelse fra client til datbasen? Ville nødig have min mysql database navn m.m liggende i min sourcecode (javascript)
Jeg har successfuldt brugt en normal MySQL database sammen med Sequelize (til NodeJS obviously). Det kører sgu meget godt, når man lige finder ud af hvordan Sequelize virker.
(05-04-2016, 17:57)Ash Skrev: [ -> ]Jeg har successfuldt brugt en normal MySQL database sammen med Sequelize (til NodeJS obviously). Det kører sgu meget godt, når man lige finder ud af hvordan Sequelize virker.

Okay tak for det :) Det er lige med at finde ud af hvad der er det rigtige at bruge til mit projekt, men fair nok :)
(05-04-2016, 17:59)Henta24 Skrev: [ -> ]Okay tak for det :) Det er lige med at finde ud af hvad der er det rigtige at bruge til mit projekt, men fair nok :)

Tvivler på det bliver et problem Tongue
MariaDB eller MySQL er klart mine favoritter.

Når du så skal til at lave din database connection via Node.JS, kan du bruge environment variabler til at gemme dit password på din server. Jeg har en config.json fil der ser således ud:

{
"host": "minhost.dk",
"port": "3306",
"user": "brugernavn",
"database": "databasenavn"
}

Så har jeg en options.js:

var fs = require('fs'),
configPath = './config.json';
var parsed = JSON.parse(fs.readFileSync(configPath, 'UTF-8'));
exports.storageConfig = parsed;

Så kan jeg inde i min index.js (din NodeJS applikation) gøre dette:

var options = require('./options');
var loginData = {
host: options.storageConfig.host,
port: options.storageConfig.port,
user: options.storageConfig.user,
password: process.env.password,
database: options.storageConfig.database
}

Og derefter forbinde til min database like this:

var sequelize = new Sequelize(loginData.database, loginData.user, loginData.password, {
host: loginData.host,
logging: false
});

Så for at starte NodeJS (med nohup så det kører uden at lukke ned og nodemon til at restarte serveren ved ændringer i NodeJS), kan jeg gøre dette:
Kode:
nohup env password=DATABASE_PASSWORD nodemon index.js

Ved at gøre dette, kan du hive passworded ud med process.env.password i din NodeJS applikation.
Jeg brugte lang tid på at finde en god løsning, indtil jeg fandt dette på StackOverflow.

Håber det hjalp til dit "secret password". Ingen kan i hvert fald læse det nu, udover hvis de får adgang til SSH på din server, og ser dine sidste kørte commands... but let's be real.. ain't gonna happen.