nodejs系列

简介: 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月前
|
Web App开发 缓存 JavaScript
5.nodeJS环境安装
5.nodeJS环境安装
156 0
|
JavaScript 前端开发 中间件
Nodejs 学习
Nodejs 学习
62 0
|
Web App开发 JavaScript 前端开发
扛着锄头写代码之nodejs初识
扛着锄头写代码之nodejs初识
62 0
|
Web App开发 JavaScript 前端开发
快速掌握Nodejs安装以及入门
官网:[http://nodejs.cn/](http://nodejs.cn/) Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
232 0
快速掌握Nodejs安装以及入门
|
SQL JSON JavaScript
NodeJs
Node.js is a JavaScript runtime built on Chrome&#39;s V8 JavaScript engine
|
JavaScript 前端开发 API
7天学会NodeJS!
大家好,我是零一,今天分享一个开源免费的Node教程资料 《7天学会NodeJS》,它出自于阿里巴巴国际站前端技术部
1128 1
7天学会NodeJS!
|
缓存 监控 负载均衡
为什么 Nodejs 这么快?
如果对 Node.js 的流行感到震惊,那么并不意外。Node.js 自 2009 年诞生以来就席卷了在线和应用程序开发领域,成为最受欢迎的开发环境。
459 0
|
JavaScript Ubuntu Shell
nodejs部署
nodejs部署
102 0
|
资源调度
NodeJS
NodeJS
119 0
|
JavaScript 前端开发
Nodejs中的this详解
以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的。 1、全局中的this默认是一个空对象。
2504 1