[ Кропивач ] [ a / b / bugs / c / f / g / i / k / l / m / p / t / u / ]

/t/ - Технології

Name
Email
Subject
Comment
Файл
Пароль (For file deletion.)

File: 1555012079.772471-.jpg ( 64.94 KB , 1280x720 )

File: 1555012079.772471-2.jpg ( 84.59 KB , 1280x720 )

⋮⋮⋮   No. 99699

А чи може хтось мені допомогти з джаваскріптом?

Чому вони ось тут https://learn.javascript.ru/internal-external-interface#sohranenie-this-v-zamykanii
зберігають this у змінну self, чому це взагалі працює? Я хочу сказати, хіба це не переливання з пустого в порожнє? Хіба це не посилання на один і той самий об'єкт?

⋮⋮⋮   No. 99701 OP

Чи вони хочуть сказати що this дає нам значення рядка, просто кожен раз різне, і ми цей рядок з адресою записуємо в змінну?

⋮⋮⋮   No. 99704 OP

File: 1555012680.492225-.png ( 496.73 KB , 1920x1080 )

File: 1555012680.492225-2.jpg ( 436.8 KB , 1428x2160 )

File: 1555012680.492225-3.jpg ( 124.62 KB , 1356x963 )


⋮⋮⋮   No. 99715 OP

Так. Я трошки подрочив у консолі. Отже, this нам дає посилання на поточний обйект кожного разу як ми викликаємо функцію. І ми зберігаємо конкретне посилання у змінну? Тобто змінна зберігатиме одне й те саме посилання весь час і не буде "перевизначатись". А присвоєння відбудеться під час створення нового екземпляру
var coffeeMachine = new CoffeeMachine(100000);
І збережеться в closure. Правильно? Тоді ще питання, а що ж це виходить, всі оці приватні властивості і методи засиратимуть оперативку кожного разу як ми робимо новий екземпляр? Не можна якось це діло наслідувати?

⋮⋮⋮   No. 99751

>>99699
Їбала якась нащо тобі ООП в джаваскрипті?
>>99715
На https://leanpub.com/javascriptallongesix/read#metaobjects

⋮⋮⋮   No. 99752 OP

>>99751
Ну, а хіба це лайно не питають на співбесідах? (ОП)

⋮⋮⋮   No. 1107

File: 1556355690.997865-.jpg ( 20.3 KB , 230x230 )

А тут хтось знає Node.js хоча б якось? У мене є питання.

⋮⋮⋮   No. 1108

>>1107
Давай питання.

⋮⋮⋮   No. 1109

>>1108
Дякую! Зараз, секунду.

⋮⋮⋮   No. 1110

Я хочу відправити JSON-обйект на сервер, сервер працює на Node.js. Я використовую ПОСТ-метод. На сервері, треба дістати з реквеста той обйект, але я не знаю як. Л.юди кажуть, можна використовувати stream i chunks, але це виглядає заскладно. Є спосіб тупо взяти з реквеста обйект? Подібно до того як ми беремо його на боці клієнта коли приходить відповідь з сервера? Можу кинути свій код.

⋮⋮⋮   No. 1111

>>1110
Ну щось типу такого:

var req = {
method: 'POST',
url: 'http://127.0.0.1/user/signin';,
headers : {
'Content-Type' : 'application/json'
},
data: JSON.stringify({ test: 'test' })
};


Через JQuery:
$.ajax({
type:"POST",
dataType:"json",
contentType: "application/json",
data:JSON.stringify(newWorkLog),
url:"/add",
})
.done(function(response){
console.log("Response of update: ",response)
})
.fail(function(xhr, textStatus, errorThrown){
console.log("ERROR: ",xhr.responseText)
return xhr.responseText;
});


На сервері:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

⋮⋮⋮   No. 1112

>>1111
> app.use(bodyParser.json());
> app.use(bodyParser.urlencoded({ extended: false }));
Мене цікавить ось ця частина. Це jQueri чи ні? Потрібні модулі для bodyParser?

⋮⋮⋮   No. 1113

>>1111
> app.use
Це ж Express, правильно? А можна без нього? Голим джиесом (там у мене все на голому джс).

⋮⋮⋮   No. 1114

>>1112
jQueri на фронт-енді.

⋮⋮⋮   No. 1115

>>1113
Так це Express. Ну ще можна так.

// index.js
const http = require('http')
const port = 3000
const requestHandler = (request, response) => {
console.log(request.url)
response.end('Hello Node.js Server!')
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})

Або тут:
https://www.w3schools.com/nodejs/nodejs_http.asp

⋮⋮⋮   No. 1117

Бліііін, я не доганяяяяююю(((

Ось це >>1115 має бути файлом для запуску сервера. Ось тут
>response.end('Hello Node.js Server!')
ми засовуємо дані в респонс, на відправку назад клієнтові. Можна ще це подати як JSON.stringify({talkShit: 'ahahahahaha'}).

Але де рядок в якому ми приймаємо JSON з клієнта? Тут https://www.w3schools.com/nodejs/nodejs_http.asp кажуть лише як парсити URL, але це не те. Чи можу я написати щось типу
let dataObj = JSON.parse(req.headers);
?

⋮⋮⋮   No. 1118

ВСЕ ВИЙШЛО!!!!!
ПОТІМ ПОКАЖУ КОД З ДВОХ БОКІВ, МОЖЕ КОМУ БУДЕ ЦІКАВО
УРАААААААААААААААААААААААААААААААААА

⋮⋮⋮   No. 1119

Клієнт
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IT WORKS</title>
<style>
body {
background-color: rgb(41,42,44);
padding: 0;
margin: 0;
font-family: sans-serif;
font-size: 16px;
}

#authorizeWindow {
background: rgb(120,120,120);

box-sizing: border-box;
width: 500px;
height: 300px;

position: absolute;
left: calc(50vw - 254px);
top: calc(50vh - 154px);
z-index: 0;

border: 5px solid rgb(47, 79, 79);
border-radius: 15px;

padding: 10px;
overflow: hidden;
}

#authorizeWindow #nickname {
display: block;
box-sizing: border-box;
width: calc(100%);
height: 40px;
margin-bottom: 10px;
border: 2px solid rgb(47, 79, 79);
border-radius: 10px;


padding: 5px;
font-size: 24px;
color: rgb(47, 79, 79);
background: lightgrey;
}

#authorizeWindow #password {
display: block;
box-sizing: border-box;
width: calc(100%);
height: 40px;
margin-bottom: 10px;
border: 2px solid rgb(47, 79, 79);
border-radius: 10px;


padding: 5px;
font-size: 24px;
color: rgb(47, 79, 79);
background: lightgrey;

margin-bottom: 90px;

position: relative;
}

#authorizeWindow #loginIfo {
border-radius: 10px;
box-sizing: border-box;
padding: 5px;
height: 25px;
width: 470px;
display: block;
position: absolute;
top: 100px;
left: 10px;
color: rgb(127, 255, 0);
font-size: 16px;
z-index: 5;
}

#authorizeWindow #loginIfo.activated {
background: rgb(100, 100, 100);
}

#authorizeWindow #confirmLogInButton {
display: inline-block;
height: 35px;
width: 120px;
border-radius: 15px;
border: 2px solid black;
background: rgb(47, 79, 79);
color: white;
font-size: 18px;
font-style: italic;
cursor: pointer;
}
#authorizeWindow #confirmSignUpButton {
display: inline-block;
height: 35px;
width: 120px;
border-radius: 15px;
border: 2px solid black;
background: rgb(47, 79, 79);
color: white;
font-size: 18px;
font-style: italic;
cursor: pointer;
}
</style>
</head>
<body>
<div id="authorizeWindow">
<div id="element__logIn-wrapper">
<input type="text" id="nickname" placeholder="Enter your login here">
<input type="password" id="password" placeholder="Enter your password here" class="wrongPassword">

<div id="loginIfo"></div>

<button id="confirmLogInButton">Log In:)</button>
<button id="confirmSignUpButton">Sign Up!</button>
</div>
</div>

<script>
/ Змінні для затравки /
var authorizeWindow = document.getElementById('authorizeWindow');
var nickname = document.getElementById('nickname');
var password = document.getElementById('password');
var confirmLogInButton = document.getElementById('confirmLogInButton');
var confirmSignUpButton = document.getElementById('confirmSignUpButton');
var element__logIn_wrapper = document.getElementById('element__logIn_wrapper');


/ Це - головна ф. для комунікації з сервером. Вона є заготовкою, функціонал якої конкретизують передані в неї колбеки від різних елементів. /
/ Вона один раз написана і не чіпається. Просто викликаєш її кожного разу як щось треба від сервака, і передаєш туди колбек чи якісь параметри для уточнення поведінки./
function serverCommunication() {

var serverInteraction = new XMLHttpRequest('POST', '/logInAttempt', true);
serverInteraction.open("POST", '/logInAttempt', true);
serverInteraction.setRequestHeader('Content-Type', 'application/json');

serverInteraction.onreadystatechange = function() {
if (serverInteraction.readyState != 4) return;

if (serverInteraction.status != 200) {
alert(serverInteraction.status + ': ' + serverInteraction.statusText);
} else {
var serverResponse = JSON.parse(serverInteraction.responseText);
alert(serverResponse.one)
}
};

serverInteraction.send(JSON.stringify({pidor: 'z clienta'}));

};
/ ****************************************************************************************************************************************************************************************** /
/ ****************************************************************************************************************************************************************************************** /





confirmLogInButton.onclick = function() {

loginIfo.className = '';
loginIfo.innerHTML = '';


if (password.value === "" || nickname.value === '') {
loginIfo.className = 'activated';
loginIfo.innerHTML = 'Please, fill both fields above.';
return;
}

var nicknameSymbols = nickname.value.split('');
var passwordSymbols = password.value.split('');
console.log(nicknameSymbols, passwordSymbols)


for (var i = 0; i < nicknameSymbols.length; i++) {
if (nicknameSymbols[i] == ' ') {
loginIfo.className = 'activated';
loginIfo.innerHTML = "Don't use spaces pls";
return;
}
}

for (var i = 0; i < passwordSymbols.length; i++) {
if (passwordSymbols[i] == ' ') {
loginIfo.className = 'activated';
loginIfo.innerHTML = "Don't use spaces pls";
return;
}
}

serverCommunication();

};
</script>
</body>
</html>

⋮⋮⋮   No. 1120

Сервер
/Модулі для роботи сервера і тп фігня :) /
var url = require("url");
var path = require("path");
var fs = require('fs');
var http = require("http");


/ Це вже мої робочі функції для логіна /

// var listOfAccounts = {dasds: 'asdasdsad'};

// function createNewUser(userName, password) {
// this.userName = userName;
// this.password = password;
// };

// function checkLogInData(userName, password) {
// var ifUserExists;
// var ifPasswordIsRight;
// if (listOfAccounts[userName] == true) {
// ifUserExists = true;
// } else return (ifUserExists = false/???????????????????/);

// if (ifPasswordIsRight){return};
// };
/****************************************************/


http.createServer(function(request, response) {

var uri = url.parse(request.url).pathname;

if(uri === "/") {
fs.readFile('./index.html', function(err, file) {

response.writeHead(200, { "Content-Type": "text/html" });
response.end(file, "utf-8");
});
} else if(uri === "/logInAttempt") {

var body = [];
request.on('data', (chunk) => {
body.push(chunk);
console.log(JSON.parse(body))
}).on('end', () => {
body = Buffer.concat(body).toString(); // at this point, `body` has the entire request body stored in it as a string
});


response.writeHead(200, {"Content-Type": "application/json"});
response.write(JSON.stringify({one: "Ніт - підора отвіт)))) Це була відповідь з матюкливого сервера."}));
response.end();
} else {
console.log(uri);
}

}).listen(7080);

⋮⋮⋮   No. 1121

Ха-ха!



[Return] [Go to top] [Catalog] [Post a Reply]
Delete Post [ ]

[ Кропивач ] [ a / b / bugs / c / f / g / i / k / l / m / p / t / u / ]