Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Cum se afișează valoarea unei sesiuni expres (node.js) într-un alt fișier .js

- - - - -
  • Please log in to reply
No replies to this topic

#1
marius019

marius019

    Junior Member

  • Grup: Members
  • Posts: 54
  • Înscris: 07.03.2012
Salutare,
Am o aplicație de chat creată cu node.js express.js și socket.io, am implementat în fișierul app.js un sistem de conectare care salvează sesiunea pentru numele de utilizator conectat și a afișeaza numele de utilizator pe adresamea.ro/logged ca Welcome, user.

Fișierul app.js este pornit cu comanda node app.js din consolă.

var mysql = require('mysql');
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var path = require('path');
var app = express();
var http = require("http").Server(app);
var io = require("socket.io")(http);
var connection = mysql.createConnection({
host	 : 'localhost',
user	 : 'root',
password : '',
database : 'nodelogin'
});
app.use(express.static("public"));
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
app.get("/chat", function(req, res) {
res.sendFile(__dirname + "/chat.html");
});
http.listen(process.env.PORT || 8000, function() {
console.log("Listening on port " + process.env.PORT);
});
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: true
}));
app.use(bodyParser.urlencoded({extended : true}));
app.use(bodyParser.json());
app.get('/login', function(req, res) {
res.sendFile(path.join(__dirname + '/login.html'));
});
app.post('/auth', function(req, res) {
var username = req.body.username;
var password = req.body.password;
if (username && password) {
	 connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {
		 if (results.length > 0) {
			 req.session.loggedin = true;
			 req.session.username = username;
			 res.redirect('/logged');
		 } else {
			 res.send('Incorrect Username and/or Password!');
		 }		
		 res.end();
	 });
} else {
	 res.send('Please enter Username and Password!');
	 res.end();
}
});
app.get('/logged', function(req, res) {
if (req.session.loggedin) {
	 res.send('Welcome back, ' + req.session.username + '!');
} else {
	 res.send('Please login to view this page!');
}
res.end();
});


Vreau să afișez acest nume req.session.username in fisier-ul chatclient.js, acest fișier afișează camera de chat care conține utilizatori, mesaje etc.

chatclient.js - o parte a codului care conține numele utilizatorului
var me = null;
var clients = null;
$(function(res, req) {
var socket = io();
clients = new Map();
var userinfo = localStorage.getItem("userinfo");
if (userinfo == null) {
	 socket.emit("init", {
		 id: "",
		 name: "",
		 avatar: "",
		 regname: ""
	 });
} else {
	 var storageData = JSON.parse(userinfo);
	 me = {
		 id: storageData.id,
		 name: ***Aici vreau sa fie pus req.session.username***,
		 avatar: storageData.avatar,
		 regname: storageData.regname
	 };
	 socket.emit("init", me);
}

Am notat în acest cod unde aș dori să pun req.session.username.

Dacă cineva mă poate ajuta, aș fi foarte recunoscător.Multumesc.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate