(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com)

node.js模拟简易漂流瓶,页面有扔瓶子和捡瓶子的功能,一个瓶子只能被捡到一次,阅读完就置状态位,如果没有瓶子,提示无瓶子,等等,功能很丰富哦,let‘s   go

(1)安装python,node,由于这是很久之前装的了,此次不再重复。

(2)下载sqlite3数据库,网址为http://www.sqlite.org/download.html,

选择:Precompiled Binaries for Windows,下载完别忘记把这个文件放在c盘的windows下的sysytem32文件夹里。

(3)新建项目文件夹,打开终端,进入文件夹目录,先安装一下必要的插件,命令如下,npm install cryptojs,npm install sqlite3

开始建数据库,sqlite3  bottle.db就可以建新的bottle数据库啦,然后建表
CREATE TABLE message(
id Integer primary key autoincrement,
nick_name varchar(20),
content varchar(4096),
is_read boolean,
create_time datetime,
update_time datetime
);

整个项目的代码就是html文件和js文件组成的,非常和谐的,

前端html建立XMLHttpRequest,在onreadystatechange这个回调函数里判断状态,用的是最原始的ajax异步调用,get方式,这决定了漂流瓶不能内容太多,url传值有数量限制,最大是4k。

核心代码如下:都是毫无悬念的东西,原生的,求大神指点框架版本的怎么破。

xhr.onreadystatechange=function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
alert(xhr.responseText);
var returnValue = JSON.parse(xhr.responseText);
alert(returnValue.result);
}
else if(xhr.status == 500){
alert("出错了");
}
}
}
xhr.open('get','/send?content='+encodeURIComponent(c)+"&name="+encodeURIComponent(nickName),true);
xhr.send(null);

server部分核心代码:

var url = require("url")        类似的方法进行请求

var db = new sqlite.Database("bottle.db");  把咱们建好的数据库用起来

http.createServer(........).listen(8080); 监听端口8080,

最后别忘记退出的时候关闭数据库连接
process.on("SIGINT",function(){
console.log("program will exit.");
db.close();
process.exit(1);
})

好叻,把node跑起来吧,在终端输入node  bottle_server.js

这个就是咱们刚写好的js的名字,现在可以在浏览器中输入localhost:8080

重定向到了html页面,现在就可以扔瓶子捞瓶子了,哈哈,很有趣啊,虽然捞到的都是自己扔的瓶子

node.js模拟qq漂流瓶的更多相关文章

  1. node.js 模拟自动发送邮件验证码

    node.js 模拟自动发送邮件验证码 引言 正文 1. QQ邮箱设置 2. 安装nodemailer 3.配置信息 4.综合 5.讲解 结束语 引言 先点赞,再看博客,顺手可以点个关注. 微信公众号 ...

  2. Node.js模拟发起http请求从异步转同步的5种方法

    使用Node.js模拟发起http请求很常用的,但是由于Node模块(原生和第三方库)提供里面的方法都是异步,对于很多场景下应用很麻烦,不如同步来的方便.下面总结了几个常见的库API从异步转同步的几种 ...

  3. node.js模拟学校教务处登录

    临近毕业,在做毕设,我的毕设中有一个功能是模拟我学校的教务处登录以获得cookie,本来以为是挺简单的一个功能,但却花了我两天的时间.(我学校教务处用的是湖南强智科技开发的) 在网上搜了大量的模拟登录 ...

  4. js 模拟QQ聊天窗口图片播放效果(带滚轮缩放)

    页面效果如下: 完整代码如下: <!DOCTYPE html> <html> <head> <title>Test</title> < ...

  5. 用node.js模拟服务器和客户端

    服务器 代码 var net = require("net") var server = net.createServer(); server.listen(12306," ...

  6. 15个Node.js项目列表

    前言: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascri ...

  7. Node.js 入门到干活,10 个优质项目就够了!

    Node.js 在很多大公司都有不错的实践,比如:淘宝.天猫 Web 版,很多页面都是在 Node 服务器上渲染的.还有各种脚手架.前端打包发布工具.构建生态的小工具,也基本都是 Node.js 编写 ...

  8. node.js使用express框架进行文件上传

    关于node.js使用express框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究.目前的研究算是取得的比较好的进展.Settings-Sync中通过快捷键上传文件,其实主要 ...

  9. Node.js:实现知乎(www.zhihu.com)模拟登陆,获取用户关注主题

    前一段时间,在瞎看看 Node.js,便研究通过 Node.js 实现知乎模拟登陆.相信,有很多网站有登陆权限设置,如若用户未登陆,将会跳转至首页提醒用户登陆,无法浏览部分页面. 如若是 b/s 架构 ...

随机推荐

  1. requirejs的基本学习

    1.首先看几个简单的学习网站. http://www.runoob.com/w3cnote/requirejs-tutorial-1.html 这里边有两个教程一个一,一个二,看完后你有简单的了解.

  2. mysqld参数配置

    这个文件超级大, 查了一下, 大概的作用如下 是储存的格式INNODB类型数据状态下,ibdata用来储存文件的数据而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1默认试innodb, ...

  3. Timer的性能优势

    假如有这样一个场景,1个100万用户同时在线的系统,假设有一个Session管理器来管理它们的存亡,每个用户的Session有效时间假设5分钟,通常一个最简单的做法是在一个Session管理器中启动一 ...

  4. CentOS/Redhat VNC 服务

    # yum install vnc-server vnc* (CentOS 5.x)# yum install tigervnc-server tigervnc (CentOS 6.x) [root@ ...

  5. 36.Android之多线程和handle更新UI学习

    android经常用到多线程更新UI,今天学习下. 首先布局比较简单: <?xml version="1.0" encoding="utf-8"?> ...

  6. 学习笔记--函数式线段树(主席树)(动态维护第K极值(树状数组套主席树))

    函数式线段树..资瓷 区间第K极值查询 似乎不过似乎划分树的效率更优于它,但是如果主席树套树状数组后,可以处理动态的第K极值.即资瓷插入删除,划分树则不同- 那么原理也比较易懂: 建造一棵线段树(权值 ...

  7. 抓包利器Fiddler

    1).Fiddler安装 a.下载地址: http://fiddler2.com/get-fiddler b.安装:省略(下一步...下一步即可) 2).Fiddler配置 a.允许远程计算机连接Fi ...

  8. 洛谷P1174 打砖块

    题目描述 小红很喜欢玩一个叫打砖块的游戏,这个游戏的规则如下: 在刚开始的时候,有n行*m列的砖块,小红有k发子弹.小红每次可以用一发子弹,打碎某一列当前处于这一列最下面的那块砖,并且得到相应的得分. ...

  9. kindeditor粘贴word文档内容时去除格式的方法?如何设置为默认无文本格式呢?

    打开文件夹找到kindeditor-min.js文件,搜索pasteType函数,默认值是2.设置为1即可. 设置粘贴类型,0:禁止粘贴, 1:纯文本粘贴, 2:HTML粘贴.

  10. 使用easyUI 创建复杂的toolbar到datagrid

    http://www.cnblogs.com/javaexam2/archive/2012/08/10/2632649.html @author YHC datagrid 的toolbar能包含的不仅 ...