/**
* Created by Administrator on 2016/8/22 0022.
* chat
*/
var net=require('net');
var chatServer=net.createServer();
var clientList=[];
chatServer.on("connection",function(client){
client.name=client.remoteAddress+":"+client.remotePort;
console.log(client.name);//::ffff:192.168.1.100:53095 ->ipv6地址:ip地址:端口地址
client.write('hello world');
client.write('server build...!\n\r');
//client.end();//关闭客户端连接
clientList.push(client);//把所有的客户端连接放进数组
client.on("data",function(data){//监听客户端的data
for(var i=0;i<clientList.length;i++){
if(client!=clientList[i]){//当前的客户端不等于所有的客户端的当前客户端连接,就是排除当前客户端
clientList[i].write(client.name+"say:"+data);//在当前客户端外的所有客户端打印当前客户端输入的信息
}
}
});
client.on('end',function(){
clientLists.splice(clientList.indexOf(client),1);//断开客户端连接就把该客户端从客户端连接数组里删除
});
client.on('error',function(e){
console.log(e)
}) });
chatServer.listen(3000);

  

/**
* Created by Administrator on 2016/8/22 0022.
* pathParse
*/
var http=require('http');
var url=require('url');
var fs=require('fs');
var util=require('util');//外围函数模块
FILE='I:/work/wos/static';//定义目录
var httpServer=http.createServer(function(request,response){
//response.writeHead(200,{'Content-Type':'text/plain'}); //mime
response.writeHead(200,{'Content-Type':'text/html'});
//response.write(util.inspect(url.parse(request.url)));//用url模块解析request.url,并用util.inspect字符串化解析的对象
urlPath=FILE+url.parse(request.url).pathname;
if(url.parse(request.url).pathname!='/favicon.ico'){ //排除favicon.ico的请求
var resData=fs.readFileSync(urlPath,'utf8');
response.write(resData);
}
response.end('end!');
});
httpServer.listen(8888);
console.log('server running at 8888');//日志

  

/**
* Created by Administrator on 2016/8/23 0023.
* postFormData
*/ var http=require('http'),
url=require('url'),
fs=require('fs'),
queryString=require('querystring');
//第三方Post数据解析模块 https://github.com/felixge/node-formidable
formidable=require('formidable'); //formidable 翻译:可怕的,厉害的 http.createServer(function(req,res){
var reqPathName=url.parse(req.url).pathname
if(reqPathName=='/index'){
var resDate=fs.readFile('static/index.html','utf-8',function(err,data){
if(err){
console.log('服务器错误,错误代码:007');
}else{
res.writeHead(200,{'Content-Type':'text/html'});
res.write(data);
res.end();
} })
}else if(reqPathName=='/post'){
var postDate='';
req.on('data',function(data){
postDate+=data;
});
req.on('end',function(){
var parsePostDate=queryString.parse(postDate);
res.writeHead(200,{"content-type":'text/html'});
res.write('<head><meta charset="utf-8"/></head>');
res.write('提交的姓名是:'+parsePostDate.name+"<br/>"+'提交的年龄是:'+parsePostDate.age);
res.end();
});
}
else{
res.writeHead(404,{"content-type":'text/plain'});
res.write('404,服务器未找到该页面!');
res.end();
}
}).listen(10000);

  

/**
* Created by Administrator on 2016/8/24 0024.
* filesUpload
*/
var http=require('http'),
url=require('url'),
fs=require('fs'),
formidable=require('formidable');
http.createServer(function(req,res){
var reqPathName=url.parse(req.url).pathname
if(reqPathName=='/index'){
var resDate=fs.readFile('static/index.html','utf-8',function(err,data){
if(err){
console.log('服务器错误,错误代码:007');
}else{
res.writeHead(200,{'Content-Type':'text/html'});
res.write(data);
res.end();
}
})
}else if(reqPathName=='/filesUpload'){
var form = new formidable.IncomingForm();
form.uploadDir = "./temp"; //设置文件上传的临时存放地,稍后可以fs.rename()重命名或移动. 默认的临时文件存放在os.tmpDir()
//解析req提交的数据
form.parse(req,function(err,fileds,files){ //fileds是提交的字符串数据,比如type="text",files是附件型的数据
if(err){
console.log('提交出错!');
}else{
res.writeHead(200,{'Content-Type':'text/html'});
console.log(fileds)//{ name: 'leyi', age: '10000' }
/* { attachment:
File {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
size: 22005,//附件大小
path: 'temp\\upload_512b6849c0b21064f6abd98af736f9b3', //临时文件目录
name: 'about_us_bg.jpg',//附件名称
type: 'image/jpeg',//附件类型
hash: null,
lastModifiedDate: Wed Aug 24 2016 22:52:17 GMT+0800 (中国标准时间),//附近最后改动日期
_writeStream:
WriteStream {
_writableState: [Object],
writable: true,
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
path: 'temp\\upload_512b6849c0b21064f6abd98af736f9b3',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 22005,
closed: true } } }*/
console.log(files)
var tempPath=files.attachment.path //临时文件地址
fs.rename(tempPath,'./files/'+new Date().getTime()+files.attachment.name);//移动文件
}
res.end();
})
}
else{
res.writeHead(404,{"content-type":'text/plain'});
res.write('404,服务器未找到该页面!');
res.end();
} }).listen(9999);

  

node代码片段的更多相关文章

  1. 46 个非常有用的 PHP 代码片段

    在编写代码的时候有个神奇的工具总是好的!下面这里收集了 40+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...

  2. VS code自定义用户代码片段snippet

    打开VS code,“文件-首选项-用户代码片段-选择新建全局代码片段文件 “ 属性介绍:prefix   就是你自定义的快捷键 body    就是你自定义的代码片段 description 就是这 ...

  3. PHP实用代码片段(三)

    1. 目录清单 使用下面的 PHP 代码片段可以在一个目录中列出所有文件和文件夹. function list_files($dir) { if(is_dir($dir)) { if($handle ...

  4. 一些日常工具集合(C++代码片段)

    一些日常工具集合(C++代码片段) ——工欲善其事,必先利其器 尽管不会松松松,但是至少维持一个比较小的常数还是比较好的 在此之前依然要保证算法的正确性以及代码的可写性 本文依然会持久更新,因为一次写 ...

  5. 【转】46 个非常有用的 PHP 代码片段

    1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言 ...

  6. PHP必用代码片段

    在编写代码的时候有个神奇的工具总是好的!下面这里收集了 50+ PHP 代码片段,可以帮助你开发 PHP 项目. 这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧- ...

  7. visual studio code开发代码片段扩展插件

    背景 visual studio code编辑器强大在于可以自己扩展插件,不仅可以去插件市场下载,也可以按照官方的API很方便的制作适合自己的插件: 自己最近在开发一个手机端网站项目,基于vant项目 ...

  8. latex在vim中的代码片段

    Gilles Castel写的vim中使用的代码片段,质量很高,原文:https://github.com/gillescastel 下载后,存放到 ~/.vim/plugged/ultisnips/ ...

  9. sublimetext3中保存代码片段

    在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...

随机推荐

  1. day21、模块

    模块: 模块,用一砣代码实现了某个功能的代码集合.不同功能,放置在不同模块中,模块就是一个.py文件.避免函数重复写代码.对于相同功能的代码.只需要调用该模块或者该模块里面的函数就可以.增加灵活性,和 ...

  2. 基于Spring Boot/Spring Session/Redis的分布式Session共享解决方案

    分布式Web网站一般都会碰到集群session共享问题,之前也做过一些Spring3的项目,当时解决这个问题做过两种方案,一是利用nginx,session交给nginx控制,但是这个需要额外工作较多 ...

  3. nginx响应时间监控脚本

    最近我们服务的使用方总是反应说我们接口超时,于是做了一个监控脚本,统计最近五分钟的响应情况,并对异常情况发送邮件报警. #!/bin/bash function define(){ ori_log_p ...

  4. stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)

    I. 最小编辑距离的定义 最小编辑距离旨在定义两个字符串之间的相似度(word similarity).定义相似度可以用于拼写纠错,计算生物学上的序列比对,机器翻译,信息提取,语音识别等. 编辑距离就 ...

  5. 转I2s

    转自http://blog.csdn.net/ce123/article/details/6919954 I2S音频总线学习(二)I2S总线协议 一.I2S总线概述 音响数据的采集.处理和传输是多媒体 ...

  6. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  7. 同时闪烁多个要素代码(ArcEngine)

    /// <summary> /// 根据查询条件构造/// </summary> /// <param name="where">查询条件< ...

  8. HDU 4003 [树][贪心][背包]

    /* 大连热身A题 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一棵树,每条边上有权值.给一个起点,放置n个机器人,要求使得任意一个节点至少被一个机器人经过. 每个机器人经过某条边时的代价为这条 ...

  9. unity3d android 优化

    最近项目进入收尾阶段,之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是android上,试过几款手机,从低端到高端,发 ...

  10. mysql数据库常规命令操作

    1.MySQL数据库导出命令 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名     mysqldump -u wcnc -p smgp_apps_wcn ...