Node.js
nodejs
服务器是一个机器,处理,接受数据,并且与多个客户端进行通信
当我们正式与服务端通信时需要以这样的格式:protocol://domain:port
协议+域名+端口
当我们平时访问网站的时候却往往不需要加上端口,是因为我们的机器已经预留好了一系列的端口来处理例如HTTP协议
我们之前运行js代码的时候都是依赖于浏览器,而node.js可以使我们本地的机器运行js代码,它使得我们的机器可以运行js代码,从而让我们的机器也可以成为一台服务器
npm yarn 都是node.js的包管理工具
- 我们会把前端react的代码,放在client/
- 把服务端的代码放在server/
异步IO
node.js 是单线程的,通过事件队列的形式实现并发,当网络或文件请求发生时,Node.js 会注册一个回调函数,然后就去处理下一个请求了。当之前的操作完成后,会触发之前注册的回调函数,进而响应之前的请求。基于这个特性,node的许多操作都是异步的。
js模块化
node.js 将js代码进行了更严格的模块化处理,使得其构建大型项目成为了可能
commonJs
我们的一个文件一般都有引用和被引用部分,我们用module.exports
和require
分别来处理可被引用的接口和引用其他文件的工作
例如
1 2 3 4 5 6 7 8 9 10 11 |
|
ECMAScript
现代版本中有新的处理方式,使用import
和export
来处理
1 2 3 4 |
|
typescript
js是灵活的动态语言,这也导致了其检查非常不严格,容易出错,因此我们有TypeScript,让js的每一个变量和函数都和C等语言一样有类型定义。
TypeScript的作用是在编译期进行类型检查,发现错误,但最后使用的时候依旧会转换成js使用,在开发较为大型的项目的时候,使用typescript替代原生js往往是更好的选择
- todo