node express 基本用法

Posted by Qesy on 一月 13th, 2012

设置和获取SESSION : req.session.name = ‘Qesy’
获取POST : req.body.username;
MYSQL数据库操作

  1. var mysqlClient = require('mysql').Client; 
  2. var mysql = new mysqlClient(); 
  3. mysql.host = '127.0.0.1';
  4. mysql.port = 3306;
  5. mysql.database = 'node';
  6. mysql.user = 'root';
  7. mysql.password = '1234!@#$';
  8.  
  9. mysql.query("INSERT INTO guest (Mail, Content) VALUES ('"+ req.body.Mail +"', '"+ req.body.Content +"')", function(err, result){
  10. console.log(err);
  11. if(err){
  12. console.log('Insert Error: ' + err.message);
  13. return;
  14. }
  15. })

websocket.io基本用法
server

  1. io = require('socket.io').listen(app);
  2.  
  3. io.sockets.on('connection', function (socket) {
  4.   socket.emit('welcome', { hello: '欢迎来到聊天室!' });
  5. socket.on('chat_accept', function (data) {
  6. //socket.emit('chat_accept', data);
  7. io.sockets.emit('chat_accept', data);
  8. console.log(data);
  9. });
  10. socket.on('private', function(form, data){
  11. console.log(data);
  12. })
  13. });

client

  1. <script>
  2. var socket = io.connect('http://localhost:1122');
  3. var content;
  4. $(function(){
  5. socket.on('welcome', function (data) {
  6. content = ($('#websocket').html() == null) ? '' : $('#websocket').html();
  7. $('#Content').html(content+data.hello+"\n");
  8. });
  9. socket.on('chat_accept', function (data) {
  10. $('#Content').html($('#Content').html()+data.str+"\n");
  11. });
  12. $('#button_submit').click(function(){
  13. socket.emit('chat_accept', { str: $('#say').val() });
  14. });
  15. /**************************************
  16. 私聊通道
  17. **************************************/
  18. $('#button_submit2').click(function(){
  19. socket.emit('private', { str: $('#say').val() });
  20. });
  21. })
  22. </script>

前台循环

  1. < % rss.forEach(function(i, n){ %>
  2. <p>邮件 : < %= i.Mail %><br />
  3.    内容 : < %=i.Content%></p>
  4. < % })%>

js函数式编程

Posted by Qesy on 一月 11th, 2012

还真不太懂这个东西,废话不多,直接代码
码农都这样,你懂的,不解释
JS版

  1. <script>
  2. function getfuck(callback){
  3. callback('f','u','c','k');
  4. }
  5.  
  6. getfuck(function(a,b,c,d){
  7. alert(a+b+c+d)
  8. })
  9. </script>

nodejs安装jade模版引擎

Posted by Qesy on 十二月 21st, 2011
  1. npm install jade
  2. npm install jade -verbose

JS入门到高级教程

Posted by Qesy on 十二月 16th, 2011

jquery live 用户,今天学了一招

Posted by Qesy on 十二月 15th, 2011

呵呵,一直不太清楚LIVE的用法
最近在学NODEJS,有幸认识了很多JS的朋友
正好有些JS问题请教
废话不多了,上代码

提示:你可以先修改部分代码再运行。

NODEJS第一天(WIN)

Posted by Qesy on 十二月 14th, 2011

必须承认NODEJS很神奇,其实在我写这个第一天的时候我已经学习了快一周了,等我觉得还是如我第一天学习的时候那样的感觉(神奇),所以我决定好好来学习学习这门很神奇很新鲜的语言!
我打算把我这一周接触到的整理下,算是一个入门文档的记录,可能对后来者也有点滴的帮助,更重要的是对自己知识的一种积累!

首先安装nodejs最新版(当然是WINDOWS版),我觉得LINUX下碰到比WIN下更少的问题,所以不在说LINUX版,何况我都是在WIN下跑的

http://nodejs.org/#

然后下载并安装cygwin

http://cygwin.com/

这样就可以顺利跑起nodejs了
我们先来测试一个基本的

  1. var http = require('http');
  2.  
  3. http.createServer(function (request, response) {
  4.   response.writeHead(200, {'Content-Type': 'text/plain'});
  5.   response.end('Hello World\n');
  6. }).listen(8124);
  7.  
  8. console.log('Server running at http://127.0.0.1:8124/');

设计模式:工厂模式

Posted by Qesy on 十二月 6th, 2011

工厂模式:
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。(原来有朋友给我解释过的都是错的,所以我认为他虽然简单,但是很多人没搞明白什么叫工厂模式,仔细阅读每一个字,才能真正理解)

单例

  1. < ?
  2. class Example
  3. {
  4.     private static $instance;
  5.     
  6.     private function __construct()
  7.     {
  8.         echo 'I am constructed';
  9.     }
  10.  
  11.     public static function singleton()
  12.     {
  13.         if (!isset(self::$instance)) {
  14.             $c = __CLASS__;
  15.             self::$instance = new $c();
  16.         }
  17.  
  18.         return self::$instance;
  19.     }   
  20.  
  21.     // 阻止用户复制对象实例
  22.     public function __clone()
  23.     {
  24.         trigger_error('Clone is not allowed.', E_USER_ERROR);
  25.     }
  26.  
  27. }
  28.  
  29. $classtestObj = Example::singleton();

单列我现在一直在用,很好很爽,不用看到new关键字,很舒服,具体怎么发挥更大作用,那真不好说,看你的理解和悟性了,反正我觉得这个光靠看几次是体会不出来的,得深入了解,多使用多体会才能真正理解

反正一句话:PHP并不简单

面向对象之 __set,__get,__isset,__unset

Posted by Qesy on 十二月 6th, 2011

很久没写BLOG了,来温习下PHP之面向对象

  1. < ?
  2. class test{
  3. public $a = '我是A';
  4. public function __set($name, $value){
  5. echo $name.'未被定义,他的值是'.$value.'!<br>';
  6. return;
  7. }
  8. public function __get($name){
  9. echo $name.'未被定义,所以不能被调用!<br />';
  10. return;
  11. }
  12. public function __isset($name){
  13. echo $name.'未被定义,已经被你确认了!<br />';
  14. return;
  15. }
  16. public function __unset($name){
  17. echo $name.'未被定义,unset不unset无所谓!<br />';
  18. return;
  19. }
  20. }
  21.  
  22. $testObj = new test();
  23. $testObj->a;
  24. $testObj->b = 'B';
  25. $testObj->c;
  26. isset($testObj->b);
  27. unset($testObj->c);

最终显示
b未被定义,他的值是B!
c未被定义,所以不能被调用!
b未被定义,已经被你确认了!
c未被定义,unset不unset无所谓!

使用ajax时避免ie缓存

Posted by Qesy on 十月 31st, 2011
  1. //函数
  2. function ajaxUrl(ajax_url) {
  3.  ajax_url = ajax_url + "&t=" + Math.random();
  4.  //如果觉得Math.random()随机出来的数值太长,可以用slice()截取
  5.  //ajax_url = ajax_url + "&t=" + String(Math.random()).slice(2,7);
  6.  return ajax_url;
  7. }
  8. //调用方法
  9. var ajax_url = ajaxUrl("/car/checkPlateNumberAjax?vcPlateNumber=1");
  10. $.ajax({async:false, url:ajax_url, success:function(result){
  11.  alert(result);
  12. }});
  13.  
  14. //还有种是JQUERT全局设置 CACHE FALSE
  15. $(function(){
  16.  $.ajaxSetup({cache:false});
  17. });

mysql 存在时跳过 不存在插入

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 [...]


Copyright © 2007 Qesy's Blog. All rights reserved.