nodejs系列

Nodejs介绍

  • Node.js是一个Javascript运行环境(runtime)。它让JavaScript可以开发后端程序,它几乎能实现其他后端语言能实现的所有功能。单线程
  • Node是基于Google V8引擎,V8引擎是Google发布的一款开源的JavaScript引擎。
  • Nodejs最擅长高并发

进程和线程

进程

  • 进程负责为程序的运行提供必备的环境、
  • 进程就相当于工厂的车间

线程

  • 线程计算机中的最小的计算单位,线程负责执行进程中的程序
  • 线程就相当于工厂中的工人

NPM介绍

npm是世界上最大的开放源代码的生态系统,npm是随同NodeJS一起安装的包管理工具

npm命令

  • npm init --yes 生成package.json文件
  • npm install md5 --save(cnpm加上save可以让配置dependencies中添加md5的配置信息,npm则可以省略,会默认加上)
  • npm install 包 -save-dev 添加到devDependencies配置中
  • npm uninstall md5 卸载模块
  • npm i 根据package.json文件配置生成node_modules
  • npm list 查看当前目录下已安装的node包
  • npm info 模块 查看模块的版本
  • npm install 模块@1.8.0 指定版本安装

模块化 CommonJs

CommonJs就是模块化的标准,node就是CommonJs(模块化)的实现

  • 通过exports或者module.exports暴露属性或者方法
  • 通过require的方式引入模块

方式一:exports导出

语法:
exports导出
exports.xxxx=xxxx
cosnt a = require('地址')
打印a {xxxx:{}}

方式二:module.exports (只有一个对象推荐使用)

module.exports=obj
cosnt a = require('地址')
打印a {}

通过require引入的时候会发生两种情况

  • 在被引入的文件node_modules文件夹下,引入是地址可以省略node_modules
    例: node_modules
    axios
    index.js
    db
    db.js
    这样的目录结构
  • require('./axios') 当文件是index可以省略
  • require('db.db')
    这种情况可以直接在db文件夹下npm init --yes 生成一个package.json文件
    之后就可以这样引入require('db')
    执行机制是package.json文件中的main

三个核心模块

http src Fs

http的使用

//request 获取url穿过来的信息
//response 给浏览器的响应信息
const http = require('http');
http.createserver((request,response)=>{
  const method = req.method;  //获取请求方式 "GET"/"POST"...
  const url = req.url;//获取请求的地址
  const path = req.url.split('?')[0];
  const query = qs.parse(req.url.split('?')[1]);
  response.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'})
  response.write(<head><meta charset="utf-8"/></head>)
  response.end()  
}).listen(3001)

src

待补充……

Fs

引入:const fs = require(‘fs’);

方法

  • fs.stat 检测时文件还是目录
  • fs.mkdir 创建目录
  • fs.writeFile 创建写入文件
  • fs.appendFile 追加文件
  • fs.readFile 读取文件
  • fs.rename 重命名 移动文件
  • fs.rmdir 删除目录
  • fs.unlink 删除文件

自定义模块

  • 第三方的模块,由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理

包目录

  • package.json:包描述文件
  • bin:用于存放可执行二进制文件的目录
  • lib:用于存放JavaScript代码的目录
  • doc:用于存放文档的目录

安装supervisor

  • 作用,不用每次写入新的内容之后关闭服务,再打开服务
  • 安装 cnpm install -g supervisor

querystring获取get参数

  • 引入 const querystring = require('querystring')
  • 使用 querystring.parse(url.split(’?’)[1])

安装cnpm

$ npm install cnpm -g --registry=https://registry.npm.taobao.org

package.json的配置

标识符

  • ^表示第一位版本号不变,后面两位取最新的
  • ~表示前两位不变,最后一个取最新
  • *表示全部取最新
  • 指定版本安装,直接去掉符号即可

后端渲染的好处

利于seo优化

nodejs和前端的javascript的区别

server开发和前端开发的区别,重点在于切换思路

http请求概述

  • DNS解析,简历TCP链接,发送http请求
  • server接收到http请求,处理,并返回
  • 客户端接收到返回数据,处理数据(如渲染页面,执行js)

lodash的使用(暂时放在这)

  • npm i lodash
  • const _ = require(‘lodash’);
  • const arr = _.concat([1,2,4,[5,6]])
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值