【笔记】node学习指北

一、准备工作

  1. npm init //初始化项目
  2. npm i express //模板框架
  3. npm i mongoose //数据库管理
  4. nom i nodemon -g //热更新服务器
    5.npm i art-template express-art-template //模板引擎

其他:pm2,管理简化node操作
性能测试工具:loadruner、jmeter
接口测试工具:postman
抓包工具:fiddle
数据库管理:Navicat,Xshell,robot3T
项目管理:禅道、QC

二、node

导入:require;导出:module.exports
exports:是module.exports对象的一个地址引用,exprots={},导出一个对象的时候,会改变原先的引用地址,从而exports,和module.exports指向地址改变。
require:也是module.reequire上的一个对象。

  1. 全局对象
  • 路径
__dirname:用来动态获取文件模块所属目录的绝对路径 (目录)
__filename:用来动态获取当前文件的相对路径(文件)
  • process

process.argv //返回数组,第一个元素node,第二个.js文件名称,第三个命令行传入的参数。
process.execPath //开启当前进程的绝对路径
process.env //返回用户当前环境信息
process.pid //当前进程Pid;
process.platform //返回当前操作系统平台。
process.stdin //标准输入流
process.stdout //标准输出流

//实现一个console.log
funciton log(msg){
process.stdout.write(msg)
}
  • Buffer 类

new Buffer(size) //创建一个buffer对象,并分配一个长度,不能更改。实例方法,类的静态方法。
buffer.write(str,num,num,code)//1.要写入的字符串,2.从buffer第几位开始写入,3.写入长度。4.编码
buffer.string(code,num.num)//1.变为字符串的编码,2.开始位,3.结束位
buffer.slice()//剪切,不包含最后一位

  1. 内置模块
  • http
  1. http.createServer() 创建服务
  2. server.on(‘request’,(req,res)=>{});接收数据请求。响应头,告诉浏览器如何解析数据。
  3. res.setHeader(‘Content-Type’,‘text/plain;charset=utf-8’):text普通字符串,html相应。一般只为字符指定编码。
  4. request //客户端对象
  5. response //服务端对象
  • url
  1. url.parse(‘url’,true) 解析请求的路径信息,解析为对象。
  2. url.format() 把路径对象,转为url字符串
  • fs
  1. fs.readFile() 根据地址输出文件内容,同步一直输出完。1参:读取路径。2参:回调函数,error,data
  2. fs.writeFile() 覆盖性创建文件。1参:写入路径。2参:写入内容。3参:error错误回调
  3. fs.appendFile() 写入文件,追加文件内容。
  4. fs.readFile() 读取文件信息。默认得到buffer,二进制数据。msg.toString(‘utf-8’)
  5. fs.unlink() 删除文件。
  6. fs.readdir() 读取文件路径。
  7. fs.stat() 类里面的stats.isFile判断是否是一个文件
  8. fs.mkdir() //创建文件夹
  9. fs.readdir() //读取文件夹
  • path
  1. path.basename() //获取一个路径的文件名
  2. path.dirname() //获取路径中的目录部分
  3. path.extname() //获取路径中的扩展名
  4. path.parse() //把路径转为对象
  5. path.join() //路径拼接
  6. path.isAbsolute() //判断呢一个路径是否是绝对路径
  • qs
  1. qs.parse(string,’&’,’=’) 把字符串变为对象
  2. qs.stringify(obj,’’,’’) 把对象变为字符串
  3. qs.escape() 编码
  4. qs.unescape 解码
  • os 系统信息模块
  • erro 错误信息模块
  1. 第三方模块(插件)
  • npm i nodemailer //发邮件
  • npm i json-server -g //json文件api化,配合mock.js
    使用链接
  • npm i cheerio //爬虫

三、服务器端

Ubuntn 镜像

  1. 新实例更新 apt update
  2. 查看 apt show nginx
  3. 安装nginx ,apt install nginx -y
  4. 安装 mongodb,apt install -y mongodb-server
  5. 安装给git,apt install -y git
  6. 生成key,ssh-keygen
  7. 查看key,cat
  8. 安装node, apt install -y nodejs
  9. 安装npm, apt install -y npm
  10. 淘宝镜像,npm config set registry https://registry.npm.taobao.org
  11. 升级node,npm i -g n,然后 n latest
  12. 创建根目录文件,mkdir /data ,cd /data
  13. 把git仓库克隆里面
  14. 安装pm2, npm i -g pm2
  15. 配置nginx,vscode安装remote,连接服务器,进入etc/nginx/
  16. 进入http://nginxconfig.io网站进行配置,复制文件之后

Nginx

  1. 重启
  • service nginx start
  • systemctl start nginx
  1. 不小心删掉etx/nginx文件的话

    dpkg --force-confmiss -i /var/cache/apt/archives/nginx-common_*.deb

四、pm2

安装: npm install pm2@latest -g
启动 :pm2 start app.js
停止 :pm2 kill
pm2启动命令
  1. pm2 start app.js:启动nodeJs应用,进程的默认名称为文件名app
  2. pm2 start app.js --name mynode:启动node,并指定进程名称为mynode
  3. pm2 start app.js -i max:根据有效CPU数目启动最大进程数目
  4. pm2 start app.js -i 3:启动3个进程
  5. pm2 start app.js --watch:实时监控的方式启动,app.js文件有变动时,pm2会自动reload
  6. pm2 start app.js -x:用fork模式启动 app.js 而不是使用 cluster
  7. pm2 start app.js -x -- -a 23:用fork模式启动 app.js 并且传递参数(-a 238. pm2 start app.json:启动进程, 在 app.json里设置选项
  9. pm2 start app.js -i max -- -a 23:在 -- 之后给 app.js 传递参数
  10. pm2 start app.js -i max -e err.log -o out.log:启动并生成一个配置文件
pm2查看与监视进程
  1. pm2 list:显示所有进程;
  2. pm2 show 0,pm2 info 0:查看进程id为 0 的详细信息;
  3. pm2 monit:进入监视页面,监视每个node进程的CPU和内存的使用情况。
pm2停止、删除进程
  1. pm2 stop/delete 0:停止/删除id为 0 的进程;
  2. pm2 stop/delete all:停止/删除所有进程。
pm2重启、重载
  1. pm2 restart 0:重启id为 0 的进程;
  2. pm2 restart all:重启所有进程;
  3. pm2 reload 00秒停机重载id为 0 进程(用于 NETWORKED 进程);
  4. pm2 reload all:重载所有进程。
pm2日志操作
  1. pm2 logs:显示所有进程的日志;
  2. pm2 logs 0:显示进程id为 0 的日志;
  3. pm2 flush:清空所有日志文件;
  4. pm2 reloadLogs:重载所有日志。
pm2 startup:产生 init 脚本,保持进程活着。

五、express

  • 创建服务
    let app = express();
  • get
app.get('/', (req, res) => {
    res.end('hello index')
})
req.query:解析get请求。
  • Post,参数解析
需要安装body-parser插件
npm i body-parser
application/x-www-form-urlencoded  表单传参
application/json      json传参。
applocation/formData  图片用
  • 路由
  • token
  • 中间件,拦截器
  • 静态资源目录
app.use('/public/',express.static('/public/'))
  • 内置模块,router

六、Koa

  1. koa-static-cache:静态文件代理服务
  2. koa-router:路由
  3. koa-swig:模板引擎
  4. koa-bodyparser:body解析
  5. koa-multer:formIData解析

七、MongoDB

mongodb下载地址:http://dl.mongodb.org/dl/win32/x86_64

1.安装
* 安装的时候,最后一项不要点。(谨记)
* 不是内部变量的话,配置环境变量。
* 在安装的磁盘目录下,新建data/db
* 一个命令窗口,mongod:开启服务数据库,不要关;一个mongo:连接数据库,可以操作数据库;
2.指令
* cls     //清屏
* dir   查看文件目录
* mongod 启动数据库
* mongo 调起操作数据库

> mongod --dbpath = 数据存储目录路径 // 修改默认的数据存储,目录
> show dbs // 显示当前数据库连接池中的所有的数据库
> use test// 有则切换,无则创建并且切换至test数据库
>.db.dropDatabase();删除数据库,删除当前所在的数据库
> db.createCollection('users') // 创建集合----创建表
> db.suers.drop() 删除当前集合表
>db.createCollection('users', {
      capped : true, // 创建固定集合
      autoIndexId : true, // 自动在 _id 字段创建索引
      size : 6142800, // 整个集合空间大小 6142800 KB
      max : 10000 // 文档最大个数为 10000 个 ,最多存储10000条数据
    })
> db.getCollectionNames() // 打印出当前数据库中所有的集合
> db.users.insert({username: '名字', run: 50}) // 插入一条数据
> db.users.find() // 查询到的三条数据
> db.users.find().toArray() // 查询数据转换为数组
> db.users.find({},{_id:0}) // 第一个{}查询条件,第二个{}表示显示字段,1为显示,0不
> db.users.updateOne({run: 0},{$set: {run: 5}}) // 更新单条数据
> db.users.updateMany({run: 10},{$set: {run: 20}}) // 更新多条数据
> db.users.remove({ "username" : "昵称"}) //删除数据
> db.users.updateMany({}, {$inc: {run: +10}}) // 更新--- 自增
> db.users.find({run: {$gte: 20}},{_id:0}) // 查询大于等于20的数据
> db.users.find({},{_id:0}).limit(3) // 查询3条数据
> db.users.find({},{_id:0}).limit(3).skip(1) // 从第2条开始,选择3条,分页功能
> db.users.find({run: {$gte: 10, $lte: 30}},{_id:0}) // 价格区间查找
> db.users.find({},{_id:0}).sort({run: 1}) // 以run升序

八、桌面应用

  1. electron builder nsis
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值