node学习的几行笔记

Node和Express的一丢丢学习记录


1.node中使用mysql数据库,在createConnection创建连接后就没有必要再使用connect方法进行手动连接了,同样的end方法也不要使用;如果使用了connect方法,node将会在第二次查询的时候抛出一个错误

Cannot enqueue Handshake after invoking quit

2.node中使用app.all("*");可以拦截任何路由活动,过后所有的请求都会被拦截,也不能将app.get("/room");类似的路由嵌套在里面。

3.如果把index.html放在了项目的根目录下面,那么访问项目时将不会进入app.get("/")的路由,而是直接读取index的文件,这一点很关键!!简直是没有人性的设计。

4.说了好多次了,空的对象转换为布尔值也是为真(可以理解成自身带有toString等方法);在用mysql毁掉函数处理查询的result值时,千万不能用!result来判断未查询到结果。

5.这个数字2147483647是一个美妙的数字,它是三十二位系统中所能表示的最大的有符号整型数字,在用node向mysql数据库中写入的日期的时候不要将时间戳以数字的形式传入存储,不然他会转变成这个值的。(难过脸)

6.node中需要用到非常多的回调函数,所以要注意好好控制代码的结构,有必要时使用一些库(sync等);另外,回调函数的作用域都是在调用处的上下文中的,这意味着不用传入大量参数。

7.千万不要将node的项目名称设置为与依赖的包重名,这里指的项目名称是package.json里面设置的项目名称,如果设置成了一样的话将会报错(项目依赖名称冲突)。

8.redis是只能够存储键值对的,所以如果要存储多个属性的对象的话,需要将他转换为JSON字符串,取出来的时候一定要转换回去。

9.标准JSON的键是要用双引号括起来的哦,只是平时在接受里面使用的时候,如果不包含“- & *”等符号可以直接用不带引号或者单引号的表达。