NodeJS学習ノートの項目:登録と登録を実現する
4387 ワード
考え方:登録は、送信されたデータが特に多くないため、get方式で要求される. 登録は、送信されたデータがアバターファイルに関連してアップロードされるためpost方式で要求される.
一、ログインインタフェースloginを作成する.html,ajaxリクエストインタフェースはjQueryを採用している.
二、サービス側nodejsインタフェースAPI処理ロジック:要求方式を判断し、要求されたデータを取得する. 経路により要求されたインタフェースがloginであるかregであるかを判断する. ユーザー名パスワードの正確性と存在するかどうかを確認する. ステータスコードおよび情報を出力して、フロントエンドに成功したか否かを判定する.
一、ログインインタフェースloginを作成する.html,ajaxリクエストインタフェースはjQueryを採用している.
:
:
$('#login').click(function () {
$.ajax({
url: "/login",
data: {
username: $("#username").val(),
password: $("#password").val()
},
dataType: "json",
success(res) {
if (res.err) {
alert(res.msg)
} else {
alert(" ");
location.href = "admin.html"
}
}
})
})
$('#reg').click(function () {
$.ajax({
url: "/reg",
method: "post",
data: {
username: $("#username").val(),
password: $("#password").val()
},
dataType: "json",
success(res) {
if (res.err) {
alert(res.msg)
} else {
alert(" ")
}
}
})
})
二、サービス側nodejsインタフェースAPI処理ロジック:
let http = require('http');
let url = require('url');
let querystring = require('querystring');
let fs = require('fs');
//
let user = {
admin: 123456
}
http.createServer((req, res) => {
let path, getData, postData
if (req.method == 'GET') {
let { pathname, query } = url.parse(req.url, true);
path = pathname;
getData = query;
complete();
} else if (req.method == 'POST') {
let result = [];
path = req.url;
req.on('data', buffer => {
result.push(buffer)
});
req.on("end", () => {
postData = querystring.parse(Buffer.concat(result).toString());
complete();
})
}
function complete() {
if (path == '/login') {
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf-8'
})
let { username, password } = getData;
if (!user[username]) {
res.end(JSON.stringify({
err: 1,
msg: ' '
}))
} else if (user[username] != password) {
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf-8'
})
res.end(JSON.stringify({
err: 1,
msg: ' '
}))
} else {
res.end(JSON.stringify({
err: 0,
msg: ' '
}))
}
} else if (path == '/reg') {
res.writeHead(200, {
'Content-Type': 'text/plain;charset=utf-8'
});
let { username, password } = postData;
if (user[username]) {
res.end(JSON.stringify({
err: 1,
msg: ' '
}))
} else {
user[username] = password;
res.end(JSON.stringify({
err: 0,
msg: ' '
}))
}
} else {
fs.readFile(`./${path}`, (err, data) => {
if (err) {
res.end('404');
} else {
res.end(data);
}
})
}
}
}).listen(8088)