node入门(二)-- 模块系统/cheerio/webSocket

来源:互联网 发布:淘宝上黑曜石是真的吗 编辑:程序博客网 时间:2024/06/08 02:27

模块系统

CommonJS(cmd规范) -- 同步加载exports、module.exports、require('./xx.js')加载方式(只会加载一次)相对路径(./)或绝对路径(../)模块名找寻方式:(npm包下载默认名)node_modules->父目录node_modules->NODE_PATH

exports 暴露一部分

// 在a.js中exports.A = class A{    static fn (){        console.log('这是A的静态方法');    }};let B = '局部不暴露的B';exports.C = function () {    console.error('暴露的C');};// 在testNodejs.js引入'use strict'let a = require('./a.js');a.A.fn(); //这是A的静态方法console.log(a.b); //undefineda.C();//暴露的C

module.exports 暴露全部

// 在b.js中var exports =module.exports = class B{    static fn (){        console.log('这是静态方法');    }    f(){        console.log('这是普通方法!')    }};exports.C = '暴露的变量';// 在testNodejs.js引入const B = require('./b.js');B.fn();//这是静态方法new B().f(); //这是普通方法!console.error(B.C);//暴露的变量

npm 模块管理工具

npm是随同nodeJS一起安装的包管理工具,能解决nodejs代码部署上的很多问题

    首先cd '需要安装的目录'    设置npm镜像为淘宝镜像    npm config set registry https://registry.npm.taobao.org    备注 : 常用的npm命令    npm init (一直回车就可生成package.json文件)    npm install xxx 安装模块    npm install xxx -S(或者--save)安装模块    会安装到package.json文件中,这样打包给别人。    就可以通过npm install安装所有的依赖模块    npm install xxx -g 将模块安装到全局环境中    //多用于安装webpack,grunt,node-supervisor(nodejs 热处理)    npm ls 查看安装的模块及依赖    npm ls -g 查看全局安装的模块及依赖    npm uninstall xxx  (-g) 卸载模块    npm cache clean 清理缓存

现在来试试一个替代jQuery,在nodejs中运行的模块–cheerio

jquery对象必须是window,node的全局对象是global,所以出现类似jquery的模块cheerio但是,cheerio只提供类似JQ的查找元素方式 -- 可做网络抓取
如果你需要使用jQuery。先下载npm install jquery@1 (代表1的版本,默认下载最新3)可以 window.$ = window.jQuery =require('jquery');var http = require('http');var cheerio = require('cheerio');var $ = cheerio.load('<html><body><div><span>测试</span></div></body></html>');console.error($('span').text()); //测试console.error($('div').html()); //<span>&#x6D4B;&#x8BD5;</span>http.get({host: 'www.baidu.com'}, function (response) {    response.on('data', function (data) {        var $ = cheerio.load(data.toString());        console.log($('a').attr('href'));        //  //www.baidu.com/gaoji/preferences.html    })});

webSocket

安装npm install ws

在testWebSocket.js中

"use strict";var ws = require('ws');var servicer = new ws.Server({port:41233});//创建server//client 拿到所有的链接的数组,用于群发 -- // 应用会更新一个带登录注册demo/*function sendAll(str) {    for (let skt of servicer.clients) {        skt.send(str); //str代表要发送的数据    }}*///socket得到webSocket链接servicer.on('connection',function (socket) {    console.log('连接上了');    socket.on('message',function (data) {        console.log(data);        socket.send('已经接收的消息:'+data);    });    socket.on('close',function () {        console.log('一个链接断开');        socket.close();    });});

在testWebSocket.html文件中

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Test ws</title></head><style>    div{ width: 200px;height: 400px;color: #e4393c;    font-size: 14px;}</style><body><input><button>发送</button><div></div>    <script>        var div = document.getElementsByTagName('div')[0];        var inp = document.body.children[0];        var btn = document.body.children[1];        var ws = new WebSocket('ws://localhost:41233');        ws.onmessage = function (o) {            var p = document.createElement('p');            p.innerHTML = o.data;            div.appendChild(p);        }        btn.onclick = function () {            ws.send(inp.value);            inp.value = '';        }    </script></body></html>
原创粉丝点击