node.js学习记录第二天——使用form表单的简单用户名登录系统

今天忙准备面试,就稍微弄了一点东西
用前一天学到的node.js知识弄了极其简单的用户名登录系统
首先需要有一个写着用户名,密码对应关系的json文件,调了半天发现这部分知识有点不清晰了,回头得整理一下,总之就是这么个东西,请无视奇奇怪怪的名字,json的名字为login.js

[
{"name":"斯忒诺","password":"1"},
{"name":"尤瑞艾莉","password":"2"},
{"name":"美杜莎","password":"3"},
{"name":"戈尔贡","password":"4"}
]

node.js除了异步读取文件,也有同步读取的方法

fs.readFileSync(fileUrl);

再利用JSON.parse()将其转换为JSON格式,我们就可以获得需要的数据了

var result=JSON.parse(fs.readFileSync("login.js"))

由于使用的用户名密码,所以传递的方式选择post,写一份form表单








用户:

密码:




再用昨天学到的post获取数据方式得到用户输入的用户名密码之后,与数据库中的对比,全部正确输出sucessful,用户名错误输出username is wrong,密码错误输出password is wrong
废话不多说直接上代码

const http=require("http");
const fs=require('fs');
const querystring=require("querystring")
const urllib=require('url')
var server=http.createServer(function(request,response){
var str="";
request.on("data",function(data){
str+=data;
})
request.on("end",function(){
var post=querystring.parse(str)
var result=JSON.parse(fs.readFileSync("login.js"))
var name=post.name;
var password=post.password;
for(var i=0;i {
if(name==result[i].name)
{
if(password==result[i].password)
{
response.write("sucessful");
break;
}
else
{
response.write("password is wrong");
break;
}
}
else if(i==(result.length-1))
{
response.write("username is wrong");
}
}
response.end()
})
})
server.listen(8080);

然后我发现response.write()中是中文的时候会出现乱码,经过一番尝试之后发现,需要在代码中加入

response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});

这句话规定了字符编码UTF-8 - Unicode,就可以写汉字了

你可能感兴趣的:(node.js学习记录第二天——使用form表单的简单用户名登录系统)