Node简单服务器开发

运用的知识:http,fs,get,post

接口定义:
/user?act=reg$user=aaa&pass=bbb
后台返回格式:{"ok":false,"msg":"原因"}
/user?act=login$user=aaa&pass=bbb
后台返回格式:{"ok":true,"msg":"原因"}

前端访问:
对文件的访问:
http://localhost:8080/1.html
http://localhost:8080/ajax.js
http://localhost:8080/1.jpg

对接口的访问:
http://localhost:8080/user?act=reg$user=aaa&pass=bbb

服务器(后端代码):
const http = require("http");
const querystring = require("querystring");
const fs = require("fs");
const urlLib = require("url");

var users = {}; //定义用户json,比如{“blue”:“123456”,“zhangsan”:“666666”}

var server = http.createServer(function(req,res){
var str = "";
req.on("data",function(data){
str += str;
});
req.on("end",function(){
var obj = urlLib.parse(req.url,true);
const url = obj.pathname;
const GET = obj.query;
const POST = querystring.parse(str);

//区分一下前端到底访问接口还是文件
if (url == ‘/user‘) { //访问接口
switch (GET.act){
case ‘reg‘:
//检查前端传过来的参数用户名是否已经有了
if (users[GET.user]) {
res.write(‘{"ok":false,"msg":"此用户已存在"}‘)
} else{
//有的话往users里面插入
users[GET.user] = GET.pass;
res.write(‘{"ok":true,"msg":"注册成功"}‘);
}
break;
case ‘/login‘:
//检查用户是否存在
if (users[GET.user]==null) {
res.write(‘{"ok":false,"msg":"用户不存在"}‘);
} else if(users[GET.user]!=GET.pass){
//检查用户密码是否正确
res.write(‘{"ok":false,"msg":"密码不对"}‘);
}else{
res.write(‘{"ok":true,"msg":"登录成功"}‘);
}
break;
default:
res.write(‘{"ok":false,"msg":"未知的act"}‘);

}
res.end();
} else{ //访问文件
//读取文件
var file_name = "./www"+url;
fs.readFile(file_name,function(err,data){
if (err) {
res.write("404");
} else{
res.write(data);
}
res.end();
});
}
});
}).listen(8081);

前端代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="ajax.js" ></script>
<script>
window.onload=function(){
var oTxtUser = document.getElementById("user");
var oTxtPass = document.getElementById("pass");
var oBtnReg = document.getElementById("reg_btn");
var oBtnLogin = document.getElementById("login_btn");

//注册按钮事件
oBtnReg.onclick = function(){
ajax({
url:‘/user‘, //这里是接口的名字
data:{act:‘reg‘, user:oTxtUser.value, pass:oTxtPass.value},//这里是传递过去的参数
type:‘get‘,
success:function(str){
var json = eval(‘(‘+str+‘)‘);
if (json.ok) {
alert("注册成功");
} else{
alert("注册失败:" + json.msg);
}
},
error:function(){
alert("通信错误")
}
});
}

//登录按钮事件
oBtnLogin.onclick = function(){
ajax({
url:‘/user‘, //这里是接口的名字
data:{act:‘reg‘, user:oTxtUser.value, pass:oTxtPass.value},//这里是传递过去的参数
type:‘get‘,
success:function(str){
var json = eval(‘(‘+str+‘)‘);
if (json.ok) {
alert("登录成功");
} else{
alert("登录失败:" + json.msg);
}
},
error:function(){
alert("通信错误")
}
});
}
}
</script>
</head>
<body>
用户名: <input type="text" id="user"/><br />
密码:<input type="password" id="pass"/><br />
<input type="button" id="reg_btn" value="注册" />
<input type="button" id="login_btn" value="登录" />
</body>
</html>

原文地址:https://www.cnblogs.com/fengyongxian/p/8900662.html

时间: 2024-10-05 23:17:41

Node简单服务器开发的相关文章

Node.js服务器开发(2)

一.npm模块安装与管理 npm模块管理 第三方模块 1.node.js生态里的第三方模块可以通过npm工具来安装使用. 2.npm安装node.js模块: npm install 本地安装, 运行npm目录/node_modules 也就是你项目目录下的node_modules npm install -g全局安装 安装到系统的node_modules 全局安装就是要你 install 后面加一个-g 表示全局 3.nodejs第三方模块安装分为两种 (1)本地安装:安装好后第三方模块代码全部

简单服务器开发(三)Socket 编程

Socket 的英文原义是“孔”或“插座”.通常也称作"套接字",用于描述 IP 地址和端口,可以用来实现不同计算机之间的通信.在 Internet 上的主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务. 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认.第一步:服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,

简单服务器开发(四)结合XML部署服务器端口号

日期工具类: package com.zda.httpserver.util;import java.text.SimpleDateFormat; import java.util.Date; /** * 日期工具类 * @author zda * @version 1.0 * @since 1.0 * */ public class DateUtil { private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyy

简单服务器开发(五)多线程服务器

处理客户端请求: package com.zda.httpserver.core; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import com.zda.httpserver.util.Logger; /** * 处理客户端请求 * @author zda * @version 1.0 * @since

Node安装及搭建简单服务器

注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件. 安装 1.在网上下载mongodb 安装包,官方网站2.双击下载文件,按步骤安装,安装完成后就可以使用node和npm命令了.3.打开终端 输入 node -v,终端将提示安装的node版本.4.nodejs运行环境安装成功. 常用的指令: npm install moduleNames:安装Node模块 安装完毕后会产生一个node_modules目录,其目录下就

跟我学Node高性能Web服务器开发

课程学习地址:http://www.xuetuwuyou.com/course/235课程出自学途无忧网:http://www.xuetuwuyou.com 课程主要讲授了时下热门的Node开发,内容包括但不限于:Node基本环境开发配置,Node模块Module机制,利用Express快速搭建Node Web服务器.MongoDB.Node+MongoDB进行数据持久化操作--,全程案例贯穿,无废话,授课直奔主题! 原文地址:http://blog.51cto.com/7420009/2085

手游服务器开发技术详解

从事游戏服务器开发差不多两年时间,两年间参与了不少项目,学到了很多游戏服务器开发技术,参与过几个不同架构的服务器开发,就随便聊聊游戏服务器开发需要的技术.(以下所指游戏服务器更偏向于手游,因为我对端游和页游开发接触并不多) 一.聊聊服务器开发有哪些东西要考虑. 1.开发语言的选择: 工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用. 业界主要的是c/c++ + Python/lua模式做游戏服务器.c/c++做网络通讯数据传输,python/lua做业务逻辑.这样既保持

erlang 游戏服务器开发

http://blog.csdn.net/slmeng2002/article/details/5532771 最近关注erlang游戏服务器开发  erlang大牛写的游戏服务器值得参考 介绍本文以我的OpenPoker项目为例子,讲述了一个构建超强伸缩性的在线多游戏玩家系统.OpenPoker是一个超强多玩家纸牌服务器,具有容错.负载均衡和无限伸缩性等特性.源代码位于我的个人站点上,大概10,000行代码,其中1/3是测试代码. 在OpenPoker最终版本敲定之前我做了大量调研,我尝试了D

游戏服务器开发需要学习的技术

一,游戏服务器编程语言的选择 所谓的游戏服务器编程语言其实有很多,基本上任何一种语言都可以作为游戏服务器的编程语言.这需要根据自己游戏的类型和要求加以选择.比如C++,Java ,Erlang,go等等.目前我用过的只有C++和Java.但是以Java为主.所以接下来就以自己的经验,谈谈以Java为核心的游戏服务器开发技术体系. Java目前作为游戏服务器开发语言已经很是普遍.但是大多数是作为页游或手游的服务器,而端游戏一般选择C++,因为端游对服务器的性能要求相对比较高一些.两种语言各有利弊.