1
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
2
阻塞和非阻塞的解释:这里就得要涉及到 同步和异步 的概念,
同步:我们js代码是从上往下执行的,上一条代码没执行完成,不执行下一条代码就是同步。
异步:在上面代码执行的时候,下面代码也可以同时执行。
那么阻塞就是同步的状态表示,而非阻塞就是异步的状态表示。
3
实现异步有两种方式: 1、回调函数 2、定时器
回调函数:监听到某个事件活动后,再执行别的代码,这种情况不影响后续代码执行,属于异步,具体的例子以后再说。
定时器:setTimeout 和 setInterval
所有的异步操纵,在js内部会优先执行同步代码,对于异步的代码会放到最后执行
4
路径中“./”、“…/”、“/”代表的含义
“./”:代表目前所在的目录。
“…/”:代表上一层目录。
“/”:代表根目录。
如:var config = require(’…/…/…/…/config/config.json’);
5
JS中Null与Undefined的区别 https://www.cnblogs.com/dyh-air/articles/7943295.html
8 面试题: websocket
CocosCreator 集成 pomelo 与 通信websocket/probuf不同
微信小游戏websocket支持https/wss - https://blog.csdn.net/peter_teng/article/details/82866613
websocket有些地方可能会被强制要求把ws协议改成wss协议,如:需要发布到微信小游戏平台的时候
7
补充:目录切换命令
cd … 回上一级目录
进入子目录, 使用 cd 文件夹名
盘之间的切换 输入 盘符: 如 D:
https://blog.csdn.net/csdnsevenn/article/details/78909434
------------------------------------js语法
1 “use strict” (Javascript 严格模式详解 阮一峰)
2 严格模式下,变量都必须先用var命令声明
3 将整个脚本文件放在一个立即执行的匿名函数之中. (function (){ });
4 匿名函数最大的用途是创建闭包
5
JSON.stringify() 从一个对象中解析出字符串
JSON.parse()从一个字符串中解析出JSON对象
6 基础函数
Nubmer: toString() toFixed(四舍五入)
String : split分割 indexOf检索 substr
Arry: length push pop sort splice
javaScript的中类和对象
定义类
//第一种定义方式
var people = function(name){
this.name = name;
this.say = function(msg){
alert(this.name + " say : " +msg);
}
}
//第二种定义方式
function people(name) {
this.name = name;
this.init = function(msg){
alert(this.name + " say : " +msg);;
}
}
//调用
var people = new people(“I”);
people.init(“hello”);//输出:I say hello
8
-------------- 本地搭建服务器
1
启动服务器
启动数据库服务器
打开/刷新Navicate
2
vsCode打开多个工程
验证SQL语句:表–查询–输入–运行-刷新
3
遇到bug:
A ERR_CONNECTION_REFUSED 1服务器未启动 2IpPort不对 3
B Error: listen EADDRINUSE :::3005。 因为监听的端口已经被使用了, 换个端口号
4 常识问题:
A 数据库不能存中文(默认是ASCII编码), 创建数据库时指定编码格式UTF8
B 未发布时, 只能使用局域网,流量不能登陆
C 请求gate在请求connector现在直接请求connector(因为connctor的port未反向代理)
D 协议格式要用 wss://格式,库中的ws不行,因为微信后台域名配置的是wss
-------------------------工具 XShell Xftp使用
Linux命令:
1 查看端口 netstat -nlp
2 根据端口id结束进程 kill 9 12645
3 pomelo启动为远程服务器 nohup pomelo start& ( 1 先cd目录下/exit ctrl+z 2即别的电脑上启动,关机不影响))
2
1 服务器路径 2启动远程服务器 3操作远程MySql(不用打开本身就开着) 4 打开多窗口
2 服务器返回信息通用格式:
A 错误:{errCode:41008, errMsg:“missing code”} B正确: {code:200, msg:rsault[0]}
3 Xshell显示中文乱码
4 数据库/表字段类型设计
---------------------------操作远程数据库
1 https://blog.csdn.net/qq_27093465/article/details/53411667 — 命令行下操作MySQL数据库,各种命令的使用入门示例。(附图)
2 查询表结构/表内容 语句后分号。
3
如何破解Visual Assist X 兼容vs2003至vs2013
箭头是破解程序- https://jingyan.baidu.com/article/a3761b2bf8526e1576f9aafe.html
mysql多表关联查询 以及 子查询 - https://blog.csdn.net/github_37767025/article/details/67636061
4 使用定时器定时执行任务–
https://blog.csdn.net/cuiyaoqiang/article/details/80075224 – https://blog.csdn.net/LeonTom/article/details/81014468
5 无法保存微信头像是图片。 改数据库/表/表字段编码为utf8mb4 + createMysqlPool
感悟:查资料, 需要2~3多个博客综合提取
----------------------------------服务器
1
备注:1绿色Log是自己打印 2蓝色是pomelo库打印。 2route:表示请求路由。
备注:session on closed是服务器主动监听到断网。 createSeesion表示唯一的回话
2
pomelo使用遇到问题:
1 如何依据roomId创建不同的广播(即房间)
2 channel广播消息client收不到
3 服务器如何监听断网
4 Logic编写:Control类 --控制—Table类----控制–User类。
5 客户端如何监听server推送的广播
6 客户端请求gate后在请求connector失败。
7 关闭本地机器,如何使远程/公司的server依旧运行。
例子:
2如断线重连后收不到房间内的消息,因为session未bind set push 《session表示一次唯一的通话》
3断网时服务器自动会收到:seesion on[]is closed with seeion id:12。 所以session.on(‘closed’…
6因为connector没有反向代理nginx,要把port代理一个唯一的域名
5pomelo.on()监听
7使用nohup 命令行启动
3 http短连接遇到问题
1 如何增加http短连接
修改文件 1servers/adminServer.json 2app.js中配置和mysql(才能操作DB) 3添加文件http/query.js
2 如何测试http接口是否能访问。 在浏览器中输入一个URL,看浏览器返回的数据。
3 下图常见报错是port被占用,用命令行kill 9 pid 杀死进程
4 数据库使用遇到坑
1 命令行: char类型SQL语句要加单引号 / update set多个字段时要加‘,’
2 数据库: 无法保存微信头像是图片。 改数据库/表/表字段编码为utf8mb4 + createMysqlPool
3 pomelo弄测试服 正式服: 服务器:server.json(要nginx代理)和master中port. client:请求域名
------------------------------------------------------------JS基础
面试基础: 闭包 call apply bind区别 浅/深拷贝 let/var区别
1 ES6新特性
2 引用类型
变量名字: 是指向内存的首地址
var person = {
"name": "lili",
age: 18 // 属性名可用字符串
}
访问对象: 点表示法 方括号法
如:
alert(person.name);
alert(person[“name”]);
alert(person[propertyName]); // 如果是变量 用点访问报错 https://www.jianshu.com/p/38955127ce2f
3
检测类型
1、检测基本类型(除null)使用typeof
2、检测引用类型的值使用 instanceof