一、环境配置

  1.下载安装nodejs      https://nodejs.org/en/download/

  2.安装完成后打开cmd命令,执行node --version,看看是否安装成功,如果提示没有此命令,去配置下环境变量,正常情况下安装后自动设置环境变量

二、配置nodejs模块

  1.安装express模块

    模块介绍:Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

   安装方式:在项目路径下执行npm install express

三、HelloWord

  1.创建一个目录,作为项目目录

2.创建一个demo.js   

var express = require('express'),//让其变为web模式
app = express(),
server = require('http').createServer(app);//引入http访问模式并绑定服务
server.listen(8000);//添加访问端口
app.get('/', function (req, res) {
res.send('Hello World');//当访问Ip:8000时,页面即可显示
})

  

  3.在项目目录下按住shift右键,选择‘在此处打开命令窗口’执行node demo.js  未报错即启动成功

4.在浏览器访问ip:port即可输出

四、访问页面

  1.在项目路径创建页面文件夹pages,并创建html页面a.html

2.在刚刚创建的demo.js中添加如下代码

var express = require('express'),//让其变为web模式

    app = express(),

         server = require('http').createServer(app);//引入http访问模式并绑定服务

         server.listen(8000);//添加访问端口

         app.use('/', express.static(__dirname + '/pages'));//绑定页面路径,在pages下创建a.html页面,可使用ip:8000/a.html访问到

         //app.use('/', express.static(__dirname + '/pages1'));//可配置多路径,但默认会自上往下查找,找到后即返回,终止查找

         app.get('/', function (req, res) {

           res.send('Hello World');//当访问Ip:8000时,页面即可显示

 })

  3.重启后访问ip:port/a.html即可访问到该页面

五、引用其他js

  1.在项目根目录创建include.js,内容如下

var hello = {
sayHello:function(name){
return 'hello,'+name+',this is include.js';
} }
module.exports=hello;

  2.在demo.js中添加

var express = require('express'),//让其变为web模式
app = express(),
include =require('./include.js'),//进入js
server = require('http').createServer(app);//引入http访问模式并绑定服务
server.listen(8000);//添加访问端口
app.use('/', express.static(__dirname + '/pages'));//绑定页面路径,在pages下创建a.html页面,可使用ip:8000/a.html访问到. "__dirname"为项目路径默认变量
app.get('/', function (req, res) {
res.send(include.sayHello("demo"));
})

  3.请求ip:port即可看到内容

六、解析请求参数

  1.在demo.js中添加后请求链接http://ip:port/?p1=p&p2=2

  

var express = require('express'),//让其变为web模式
app = express(),
url = require('url'),
server = require('http').createServer(app);//引入http访问模式并绑定服务
server.listen(8000);//添加访问端口
app.use('/', express.static(__dirname + '/pages'));//绑定页面路径,在pages下创建a.html页面,可使用ip:8000/a.html访问到. "__dirname"为项目路径默认变量
app.get('/', function (req, res) { // 解析 url 参数
var params = url.parse(req.url, true).query;
res.write("网站名:" + params.p2);
res.write("\n");
res.write("网站 URL:" + params.p1);
res.end();
})

  

七、发送http请求

  1.post

  在demo.js中添加如下内容后访问http://mykl:8000/? parameter=2

  

var express = require('express'),//让其变为web模式
app = express(),
url = require('url'),
util = require('util'),
include =require('./include.js'),
server = require('http').createServer(app);//引入http访问模式并绑定服务
server.listen(8000);//添加访问端口
app.use('/', express.static(__dirname + '/pages'));//绑定页面路径,在pages下创建a.html页面,可使用ip:8000/a.html访问到. "__dirname"为项目路径默认变量
//app.use('/', express.static(__dirname + '/pages1'));//可配置多路径,但默认会自上往下查找,找到后即返回,终止查找
app.get('/', function (req, res) {
// 解析 url 参数
var params = url.parse(req.url, true).query;
post('https://cang.mini-kaola.cn/pages/MobileWeb/getStorageDatil.htm',{cangId: params.cangid},function(data){
res.write(data);
res.end();
});
}) function post(url,data,fn){
data=data||{};
var content=require('querystring').stringify(data);//获得请求的参数
var parse_u=require('url').parse(url,true);
var isHttp=parse_u.protocol=='http:';
var options={
host:parse_u.hostname,
port:parse_u.port||(isHttp?80:443),
path:parse_u.path,
method:'POST',
headers:{
'Content-Type':'application/x-www-form-urlencoded',
'Content-Length':content.length
}
};
var req = require(isHttp?'http':'https').request(options,function(res){//发送请求
var _data='';
res.on('data', function(chunk){
_data += chunk;
});
res.on('end', function(){
fn!=undefined && fn(_data);
});
});
req.write(content);
req.end();
}

  

  2.get

  在demo.js中添加如下内容后访问http://mykl:8000/?parameter=2

var express = require('express'),//让其变为web模式
app = express(),
http=require('http'),
url = require('url'),
include =require('./include.js'),
server = http.createServer(app);//引入http访问模式并绑定服务
server.listen(8000);//添加访问端口
app.use('/', express.static(__dirname + '/pages'));//绑定页面路径,在pages下创建a.html页面,可使用ip:8000/a.html访问到. "__dirname"为项目路径默认变量
//app.use('/', express.static(__dirname + '/pages1'));//可配置多路径,但默认会自上往下查找,找到后即返回,终止查找
app.get('/', function (req, res) {
// 解析 url 参数
var params = url.parse(req.url, true).query; //get 请求外网
http.get("http://mykl/storage/pages/MobileWeb/getStorageDatil.htm?cangId="+params.cangid,function(req1,res1){
var html='';
req1.on('data',function(data){
html+=data;
});
req1.on('end',function(){
res.write(html);
res.end();
});
}); })

  

八、socket

 1.安装socket模块

  npm install socket.io

 2.进入上一步安装的模块路径,找到socket.io.js

3.在page下创建一个html,并引用上面的js

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>socket</title>
</head>
<body>
<dev id="show"/>
<br/>
<input type="text" id="nickname"/>昵称<br/>
<input type="text" id="inmsg"/>
<input type="button" id="sendBtn" value="发送" />
<br/>
</body>
<script src="socket.io.js"></script>
<script src="jquery-1.11.3.min.js"></script>
<script>
$(function(){
var socket=io.connect();//与服务器进行连接
$('#sendBtn').click(function(){
var nickname = $('#nickname').val();
var fatext = $('#inmsg').val();
if(fatext!=""){
socket.emit('famsg', nickname+"-"+new Date().toTimeString().substr(0, 8)+":"+fatext+"<br/>");
}
});
socket.on('jiemsg', function(msg) {
$("#show").append(msg);
});
});
</script>
</html>

  

WebSocket-nodejs实现的更多相关文章

  1. websocket nodejs

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  2. websocket nodejs实例

    http://blog.sina.com.cn/s/blog_49cc837a0101aljs.html http://blog.sina.com.cn/s/blog_49cc837a0101a2q3 ...

  3. websocket+nodejs+redis实现消息订阅和发布系统

    其实我很懒,不想打字,代码已上传到码云,请点此处. 有疑问请一下扫描二维码,加我微信:

  4. webpack与browser-sync热更新原理深度讲解

    本文首发于CSDN网站,下面的版本又经过进一步的修订.原文:webpack与browser-sync热更新原理深度讲解本文包含如下内容: webpack-hot-middleware EventSou ...

  5. 借助Nodejs探究WebSocket

    文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...

  6. WebSocket 学习(三)--用nodejs搭建服务器

    前面已经学习了WebSocket API,包括事件.方法和属性.详情:WebSocket(二)--API  WebSocket是基于事件驱动,支持全双工通信.下面通过三个简单例子体验一下. 简单开始 ...

  7. Nodejs websocket入门

    websocket 2011年技术文档 http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/index.html 浏览器端接 ...

  8. nodejs实现Websocket的数据接收发送

    在去年的时候,写过一篇关于websocket的博文:http://www.cnblogs.com/axes/p/3586132.html ,里面主要是借助了nodejs-websocket这个插件,后 ...

  9. HTML5+NodeJs实现WebSocket即时通讯

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近都在学习HTML5,做canvas游戏之类的,发现HTML5中除了canvas这个强大的工具外,还有WebSocket也很值得注意.可 ...

  10. Nodejs之WebSocket

    文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...

随机推荐

  1. Ajax与JSON,XML,PHP

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. JAVA语言程序设计课后习题----第二单元解析(仅供参考)

    1 注意不同类型转换 import java.util.Scanner; public class Ch02 { public static void main(String[] args) { Sc ...

  3. vue 设置全局变量、指定请求的 baseurl

    一. 基本环境前端vue:2.5.6axios:0.18使用vue脚手架构建项目.参照:webstorm搭建vue项目后台ssm框架前后端数据采用json格式传输二. 前端配置axios配置1.安装: ...

  4. VM 下增加磁盘空间

    随着Linux虚拟机的不断使用,在VMware中经常遇到 预先装好的 linux 虚拟机的硬盘空间过小 的问题,造成很多软件不能安装, 而重新装一个,又挺麻烦.于是,上网搜了下关于 vmware 硬盘 ...

  5. 6.JVM技术_java内存模型

    1.java内存模型图解 Java虚拟机在执行Java程序的过程中,会把它所管理的内存划分为若干个不同的数据区.这些区域有各自的用途,以及创建和销毁的 时间,有的区域随着虚拟机进程的启动而存在,有的区 ...

  6. 电子工程师需要了解的SMT贴片质量问题汇总(转)

    点胶工艺中常见的缺陷与解决方法 拉丝/拖尾 拉丝/拖尾是点胶中常见的缺陷,产生的原因常见有胶嘴内径太小.点胶压力太高.胶嘴离PCB的间距太大.贴片胶过期或品质不好.贴片胶粘度太好.从冰箱中取出后未能恢 ...

  7. sql 180. 连续出现的数字

    编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+-----+| Id | Num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 ...

  8. eclipse+springboot+tomcat自带的部署

    最近在看微服务,然后整理了两个springboot.但执行都是内部main执行,想着后期应该会用到tomcat,大部分都是说的打成war包,然后部署到tomcat上. war包的方式就不说了,网上很多 ...

  9. linux 下 svn 重新定位 url

    linux下重新定位SVN URL方法:   如果更换了SVN服务器,就需要重新定位,指向新的SVN URL. 重新定位命令:svn switch --relocate 原svn地址 新svn地址   ...

  10. 高并发下的 Nginx 优化与负载均衡

    高并发下的 Nginx 优化   英文原文:Optimizing Nginx for High Traffic Loads 过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. ...