Node.js入门到企业Web开发中的应用
来源:互联网 发布:怎么加入淘宝全球购 编辑:程序博客网 时间:2024/06/05 04:51
NodeJS核心API
- Stream
- 动态 Web framework
- child_process & cluster
- 深入
- through2
- Express,koa,egg
- SSR & 同构
- NodeJS源码
CommonJS(模块规范)
- 每个文件是一个模块,有自己的作用域
- 在模块内部module变量代表模块本身
- module.exports属性代表模块对外接口
require特性
- moudle被加载的时候执行,加载后缓存
- 一旦出现某个模块被循环加载,就只输出已经执行的部分,还未执行的部分不会输出
- node_modules并没有把子依赖放在依赖包的原因是为了提高性能
module.exports和exports的区别
exports是module.exports的快捷方式
lt’s likeconst exports = module.exports
注意exports的指向问题,不能修改。因为exports指向的永远是moudle.exports
global代替window对象
- CommonJS
- Buffer(二进制数据流),process(进程),console
- timer 定时器
- 模块中直接写const是局部变量,写global是全局变量
process
- argv 包含了启动Node.js进程时的命令行参数。
- argv0 保存Node.js启动时传入的argv[0]参数值的一份只读副本。
- execArgv 返回当Node.js进程被启动时,Node.js特定的命令行选项。
- execPath 脚本路径
- env属性返回一个包含用户环境信息的对象
- cwd() 返回 Node.js 进程当前工作的目录。
- setImmediate() 等待下一个事件队列
调试
- Inspect( node –inspect-brk)
- VS-Code
- 条件调试,右键
path
normalize,join,resolve
basename文件,extname文件所在路径,dirname文件后缀
parse,format
sep路径分隔符,delimiterPath分隔符,win32,posix
const {normalize} = require('path');相当于const normalize = require('path').normalize;console.log(normalize('./usr//local/bin')); /usr/local/binconsole.log(normalize('./usr//local/../bin')); /usr/bin
Buffer
- Buffer用于处理二进制数据流
- 实例类似整数数组,大小固定
- c++代码在v8堆外分配物理内存
- Buffer.from()
- Buffer.allocUnsafe()
- Buffer.alloc()
- 类
- Buffer.byteLenth()
- 一个中文,三个字节
- Buffer.isBuffer()
- Buffer.concat()
- 实例
- Buffer.length
- Buffer.toString()
- Buffer.fill()
- Buffer.equals()
- Buffer.indexOf()
- Buffer.copy()
解决乱码问题
event(事件)
- removeAllListeners
fs
- readFileSync
- readFile
- writeFile
- state
- rename
- unlink 删除
- readdir
- makedir
- watch
- createReadStream
静态资源服务器
.gitignore
- 匹配模式前 / 代表项目根目录
- 匹配模式最后加 / 代表是目录
- 匹配模式前加 ! 代表取反
- 代表任意个字符
- ? 匹配任意一个字符
- ** 匹配多级目录
ESlint
- off(0),error(2),warn(1)
项目代码构建
supervisor app.js 自动启动,修改文件不重启
range
缓存
- Expires,Cache-Control
- If-Modified-Since / Last-Modified
- If-None-Match / ETag
cli
原生可以使用process.argv
也可以使用框架代替
npm i yarge –savw
node index.js –port 8080
chmod +x bin/server 添加执行权限
版本号
x(大版本,不保证兼容).y(新增兼容的功能).z(Bugfix)
1.2.9下一版本是1.2.10,嘿嘿
Linux偶数位:稳定版
x.y.* 相当于 ~x.y.0
2.x 相当于 ^2.0.0
上传到npm
代码已经发送到gitnpm loginnpm publish
本地构建
gulp
babel
webpack
- entry
- output
- module
- loader (不同loader处理不同类型文件)
- plugins
单元测试&UI测试
- chai
- mochajs
- istanbul 代码覆盖率工具
- intanbul cover _mocha –reporter test/mocha.js
- 持续集成
- eggjs
- travis-ci
- 频繁的将代码集成到主干
- 每次集成都通过自动化的构建来验证
- 好处
- 尽早的发现错误
- 防止分支大幅偏离主干
- benchmark
- jsperf
ui测试
- React ui测试
- Jest
headless爬虫
反爬虫
- User-Agent
- Referer
- 验证码
- 单位时间访问次数,访问量
- 关键信息图片混淆
- 异步加载,懒加载
爬取百度图片
- cheerio
- 缺点:抓页面内容,不过页面可能什么也没有
- puppeteer
- .gitkeeper
阅读全文
0 0
- Node.js入门到企业Web开发中的应用
- Node.js企业开发: 二应用开发
- Node.js企业开发: 一应用场景
- Node.js企业开发
- Node.js开发web后台入门
- Node.js学习(12)----Web应用开发
- [web]Node.js入门
- Node.js 开发入门。
- 《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
- 《Node.js入门》Windows 7下Node.js Web开发环境搭建总结笔记
- Node.js从入门到深入——Node.js配置开发
- 10个最佳Node.js企业应用案例:从Uber到LinkedIn
- Node.js企业开发: 五服务监控
- Node.js企业开发: 三调试&测试
- Node.js web开发框架
- 阅读HashMap——jdk7时遇到的问题记录
- 数据库索引
- java ImageIO处理
- Jzoj4784 Map
- 习题4
- Node.js入门到企业Web开发中的应用
- 微信模板消息发送
- 创建一个SpringMVC小项目
- 电脑打字究竟对书写习惯产生了多大影响?
- Tablayout简单布局
- Game of Dice GYM101532E
- Curl超时设置
- 添加页面
- android ServerSocket 和 Socket使用简单讲解