node开发

2020-03-18  本文已影响0人  看到这朵小fa了么
node中的路径

process_cwd:工作路-执行node命令的文件夹的根路径
_dirname:当前执行文件的所在文件夹的绝对路径
filename:当前文件的绝对路径

node设置上传文件控制大小,设置
formidable: {
:{maxFileSize: 2*1024*1024}

1、长度控制通过content-length,设置返回码413
2、流式布局,将路径存入内存,文件存入磁盘

node开发和web开发的区别

对比 web开发 node开发
组成 ES规范+DOM的API ES规范+Node的API
稳定性 偶尔挂掉也只会影响一个客户端 KPI最少停机时间
内存 客户端独占cpu和内存,稍有泄露可以不管 要承载很多请求,极力压榨CPU和内存
日志记录 不依赖于日志,只需要发送 记录,存储,分析日志,监控状态
安全 主要预防XSS攻击 要兼顾防御各种攻击如数据库攻击,权限验证
集群和服务拆分 不需要 如何兼容集群拆分,通过Redis,拆分服务器集群

前端开发

1、确认需求
2、UI选型
3、实现

后端开发流程

1、数据存储,数据库,数据表的字段定义
2、接口定义,参数
3、假数据进行接口测试

nodemon 热更新

安装报错socket up,查找后设置“npm config set registry http://registry.npmjs.org/”后修复

服务端

{
    "apps": {
        "name": "test-pm2-config",
        "script": "app.js",
        "watch": true,
        "ignore_watch": [
            "node_modules","logs"
        ],
        "error_file": "logs/err.log",
        "out_file": "logs/out.log",
        "log_date_format": "YYYY-MM-DD HH:mm:ss"
    }
}

mysql常用语句

use myblog;
// 插入
insert into user(username, `password`, realname) values('zhangsan', '123', '张三')
// 查询 条件 模糊查询 正序倒序
select * from users
select id, username from users
select * from users where username='zhangsan' and `password`='123'
select * from users where password like '%1%' order by id desc 
insert 

sql密码重置

https://www.jianshu.com/p/93210aa24539

node连接sql

1、通过process.env.NODE_NEV 配置数据库
2、通过mysql插件连接数据库
3、基于promise封装exec方法,通过mysql.query() 执行sql语句

redis

set key value // 设置
get key // 获取
keys * // 查询全部
del key // 删除

nginx

配置: location / { proxy_pass: // 静态资源}
location /api {proxy_pass: // 接口; proxy_set_header: host $Host }

日志

日志分为服务日志和自定义日志,需要日志拆分和日志分析
存储:通过stream写到文件当中,而不用mysql等数据库,日志不需要表查询,且日志的体积大,文件类型易迁移,无需环境配置,日志也不追求同步,更适合存放在文件当中在文件读写中遇到的瓶颈是IO操作,同时也有网络带宽的问题
分割:通过crontab 执行定时任务(sh脚本)

// crontab -e进入编辑模式
* 0 * * * * sh /Users/XXX/Desktop/code/node/src/utils/copy.sh
// copy.sh脚本 进行拷贝和清空源文件
cd /Users/XXX/Desktop/code/node/logs
cp access.log $(date +%Y-%m-%d).access.log

echo "" > access.log

分析: 通过readline(基于stream的操作 快速)进行逐行分析

安全

进程

进程发展:单进程-复制进程-多线程-事件驱动(解决了内存占用和切换上下文的消耗)
集群稳定:自动重启、自杀信号、限量重启、日志监控,状态存储(redis),cluster单机集群
多进程架构:

上一篇 下一篇

猜你喜欢

热点阅读