Posted by Qesy on 一月 13th, 2012
设置和获取SESSION : req.session.name = ‘Qesy’
获取POST : req.body.username;
MYSQL数据库操作
- var mysqlClient = require('mysql').Client;
- var mysql = new mysqlClient();
- mysql.host = '127.0.0.1';
- mysql.port = 3306;
- mysql.database = 'node';
- mysql.user = 'root';
- mysql.password = '1234!@#$';
-
- mysql.query("INSERT INTO guest (Mail, Content) VALUES ('"+ req.body.Mail +"', '"+ req.body.Content +"')", function(err, result){
- console.log(err);
- if(err){
- console.log('Insert Error: ' + err.message);
- return;
- }
- })
websocket.io基本用法
server
- io = require('socket.io').listen(app);
-
- io.sockets.on('connection', function (socket) {
- socket.emit('welcome', { hello: '欢迎来到聊天室!' });
- socket.on('chat_accept', function (data) {
- //socket.emit('chat_accept', data);
- io.sockets.emit('chat_accept', data);
- console.log(data);
- });
-
- socket.on('private', function(form, data){
- console.log(data);
- })
- });
client
- <script>
- var socket = io.connect('http://localhost:1122');
- var content;
- $(function(){
- socket.on('welcome', function (data) {
- content = ($('#websocket').html() == null) ? '' : $('#websocket').html();
- $('#Content').html(content+data.hello+"\n");
- });
-
- socket.on('chat_accept', function (data) {
- $('#Content').html($('#Content').html()+data.str+"\n");
- });
- $('#button_submit').click(function(){
- socket.emit('chat_accept', { str: $('#say').val() });
- });
- /**************************************
- 私聊通道
- **************************************/
- $('#button_submit2').click(function(){
- socket.emit('private', { str: $('#say').val() });
- });
- })
- </script>
前台循环
- < % rss.forEach(function(i, n){ %>
- <p>邮件 : < %= i.Mail %><br />
- 内容 : < %=i.Content%></p>
- < % })%>
Posted by Qesy on 一月 11th, 2012
还真不太懂这个东西,废话不多,直接代码
码农都这样,你懂的,不解释
JS版
- <script>
- function getfuck(callback){
- callback('f','u','c','k');
- }
-
- getfuck(function(a,b,c,d){
- alert(a+b+c+d)
- })
- </script>
Posted by Qesy on 十二月 15th, 2011
呵呵,一直不太清楚LIVE的用法
最近在学NODEJS,有幸认识了很多JS的朋友
正好有些JS问题请教
废话不多了,上代码
Posted by Qesy on 十二月 14th, 2011
必须承认NODEJS很神奇,其实在我写这个第一天的时候我已经学习了快一周了,等我觉得还是如我第一天学习的时候那样的感觉(神奇),所以我决定好好来学习学习这门很神奇很新鲜的语言!
我打算把我这一周接触到的整理下,算是一个入门文档的记录,可能对后来者也有点滴的帮助,更重要的是对自己知识的一种积累!
首先安装nodejs最新版(当然是WINDOWS版),我觉得LINUX下碰到比WIN下更少的问题,所以不在说LINUX版,何况我都是在WIN下跑的
http://nodejs.org/#
然后下载并安装cygwin
http://cygwin.com/
这样就可以顺利跑起nodejs了
我们先来测试一个基本的
- var http = require('http');
-
- http.createServer(function (request, response) {
- response.writeHead(200, {'Content-Type': 'text/plain'});
- response.end('Hello World\n');
- }).listen(8124);
-
- console.log('Server running at http://127.0.0.1:8124/');
Posted by Qesy on 十二月 6th, 2011
工厂模式:
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。(原来有朋友给我解释过的都是错的,所以我认为他虽然简单,但是很多人没搞明白什么叫工厂模式,仔细阅读每一个字,才能真正理解)
单例
- < ?
- class Example
- {
- private static $instance;
-
- private function __construct()
- {
- echo 'I am constructed';
- }
-
- public static function singleton()
- {
- if (!isset(self::$instance)) {
- $c = __CLASS__;
- self::$instance = new $c();
- }
-
- return self::$instance;
- }
-
- // 阻止用户复制对象实例
- public function __clone()
- {
- trigger_error('Clone is not allowed.', E_USER_ERROR);
- }
-
- }
-
- $classtestObj = Example::singleton();
单列我现在一直在用,很好很爽,不用看到new关键字,很舒服,具体怎么发挥更大作用,那真不好说,看你的理解和悟性了,反正我觉得这个光靠看几次是体会不出来的,得深入了解,多使用多体会才能真正理解
反正一句话:PHP并不简单
Posted by Qesy on 十二月 6th, 2011
很久没写BLOG了,来温习下PHP之面向对象
- < ?
- class test{
- public $a = '我是A';
- public function __set($name, $value){
- echo $name.'未被定义,他的值是'.$value.'!<br>';
- return;
- }
-
- public function __get($name){
- echo $name.'未被定义,所以不能被调用!<br />';
- return;
- }
-
- public function __isset($name){
- echo $name.'未被定义,已经被你确认了!<br />';
- return;
- }
-
- public function __unset($name){
- echo $name.'未被定义,unset不unset无所谓!<br />';
- return;
- }
-
- }
-
- $testObj = new test();
- $testObj->a;
- $testObj->b = 'B';
- $testObj->c;
- isset($testObj->b);
- unset($testObj->c);
最终显示
b未被定义,他的值是B!
c未被定义,所以不能被调用!
b未被定义,已经被你确认了!
c未被定义,unset不unset无所谓!
Posted by Qesy on 七月 25th, 2011
今天同事问我,在程序中插入时,判断已存在的数据跳过,不存在的数据继续插入。特意从网上搜索了下,同时也去MYSQL官方查了一下,特总结以后两种比较 简单的方法。当然如果是在MYSQL中使用,或者从其他表中所获取数据来插入,可以使用存储过程或者是用NOT EXISTS 来判断是否存在。当然本人觉得还是以下两种方法比较好。
使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。
方法1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入)
REPLACE INTO Syntax
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},…),(…),…
Or:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, …
Or:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT …
方法2:使用INSERT [IGNORE] INTO (此种方法效率比较高,判断是否存在,存在不插入,否则插入)
INSERT [IGNORE] INTO Syntax
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr [...]
Recent Comments