上篇文章中介绍了node的部分模块,这里通过一个简单的实例,把各个模块关联起来,给大家展示一下node是如何实现后端接口的。本实例中分别展示了一个post请求(登录)和一个get请求(获取信息)。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>node接口案例</title>
</head>
<body>
<form>
用户名:<input id="username" type="input" name="username">
密码:<input id="password" type="password" name="password">
<button id="login">登录</button>
</form>
</body>
<script type="text/javascript" src="node_modules/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
$('#login').click(function () {
$.ajax({
url:'/login',
data:{
username:$('#username').val(),
password:$('#password').val()
},
method:'POST',
dataType:'json',
success(res){
if(res.status==1){
console.log('登录成功')
$.ajax({
url:'/info',
data:{
username:$('#username').val()
},
dataType:'json',
success(res){
if(res.status==1){
console.log('获取信息成功',res.data)
}else{
console.log(res.statusMsg);
}
}
})
}else{
console.log(res.statusMsg);
}
}
})
return false;
})
</script>
</html>
// index.js
let http = require('http');
let url = require('url');
let fs = require('fs');
let querystring = require('querystring');
// 定义json数据,模拟数据库
var users = {
keith:{
pwd:123,
age:28,
score:99
},
annie:{
pwd:456,
age:18,
score:98
}
}
http.createServer((req,res)=>{
let path,get,post
if(req.method=='GET'){
let {pathname,query} = url.parse(req.url,true)
path = pathname;
get = query;
complete()
}else if (req.method=='POST') {
let arr = []
path = req.url;
req.on('data',buffer=>{
arr.push(buffer);
})
req.on('end',()=>{
post = querystring.parse(Buffer.concat(arr).toString());
complete();
})
}
function complete(){
if (path == '/login') {
res.writeHead(200,{
"Content-Type":'text/plain;chartset=utf-8'
})
let {username,password} = post;
if(!users[username]){
res.end(JSON.stringify({
status:2,
statusMsg:'用户名不存在!'
}))
}else if(password != users[username].pwd){
res.end(JSON.stringify({
status:2,
statusMsg:'密码错误!'
}))
}else{
res.end(JSON.stringify({
status:1,
statusMsg:'登录成功!'
}))
}
}else if (path == '/info') {
res.writeHead(200,{
"Content-Type":'text/plain;chartset=utf-8'
})
let {username} = get;
if(!users[username]){
res.end(JSON.stringify({
status:2,
statusMsg:'用户名错误!'
}))
}else{
res.end(JSON.stringify({
status:1,
statusMsg:'获取信息成功!',
data:{
age:users[username].age,
score:users[username].score
}
}))
}
}else{
fs.readFile(`./${path}`,(err,data)=>{
if(err){
res.end('404');
}else{
res.end(data);
}
})
}
}
}).listen(8080)
代码可直接复制粘贴使用。首先使用node命令运行index.js,即可通过http://localhost:8080/index.html访问到页面。
来源:CSDN
作者:李小苶
链接:https://blog.csdn.net/qq_26834399/article/details/104024115