node
tianmeng1999
这个作者很懒,什么都没留下…
展开
-
node net模块 通信
net 模块回顾 http 请求普通模式三次响应 请求 响应 四次挥手长链接模式三次响应…请求 响应请求 响应请求 响应…四次挥手net 模块能干什么一个通信模块进程间的通信 IPC网络通信 TCP/IP创建客户端http://nodejs.cn/api/net.html#net_net_createconnection_options_connectlistenernet.createConnection(option[, connectListener原创 2021-07-01 22:01:52 · 343 阅读 · 1 评论 -
node 读取一个目录中所有子目录和文件
/** * 读取一个目录中所有子目录和文件 */const fs = require('fs')const path = require('path')class File { constructor(filename, name, ext, isFile, size, creeateTime, updateTime) { this.filename = filename this.name = name // 文件名 this.ext =原创 2021-06-27 12:13:50 · 1578 阅读 · 0 评论 -
文件 I/O fs:readFile/writeFile/stat/isDirectory/isFile/readdir/mkdir/exists
文件 I/OSync 函数是同步的,会阻塞,极其影响性能, 通常在程序启动时运行有限的次数即可.I/OI/O: input ouput 输入输出对外部设备的输入输出外部设备: 磁盘 网卡 显卡 打印机对外部数据进行传输就叫做 I/OI/O 的速度往往低于内存和 CPU 的交互速度fs 模块https://nodejs.org/dist/latest-v12.x/docs/api/fs.htmlreadFile 读取文件readFile 读取文件const fs = req原创 2021-06-27 11:14:24 · 305 阅读 · 1 评论 -
Koa2 初始 洋葱模型指向顺序中间件 Koa2与express的关系简单示例
文章目录介绍特点快速上手中间件特点介绍文档基于Nodejs的web开发框架由 Express原班人马打造特点支持async/await洋葱模型的中间件快速上手安装node7.6版本之上npm i koa创建app.js文件// 1创建koa对象const Koa = require('koa')const app = new Koa()// 2编写响应函数(中间件)// ctx: 上下文 ctx.request ctx.response// next 下一原创 2020-10-13 11:13:31 · 224 阅读 · 0 评论 -
npm 运行多个指令concurrently 不同目录 --prefix
文章目录解析运行多个命令 concurrently运行指定目录的命令核心示例目录结构client/package.jssonpackage.jsson运行 在node_vue 目录在client运行 node和vue脚手架解析运行多个命令 concurrentlyconcurrently npm 文档concurrently安装npm i concurrently --save-devpackage.json"scripts":{ "order1":"node a.js", "ord原创 2020-09-04 16:35:52 · 2843 阅读 · 0 评论 -
express 中间件 路由中间件 路由中间件/全局/错误处理/内置/第三方中间件 中间件应用
文章目录中间件是什么中间件由2部分组成:中间件方法,请求处理函数路由中间件全局/应用程序级别中间件 app.use错误处理中间件内置中间件第三方中间件中间件应用中间件是什么中间件是一堆方法,可以接收客户端发来的请求、可以对请求作出响应,也可以将请求继续交给下一个中间件继续处理中间件由2部分组成:中间件方法,请求处理函数中间件方法由Express提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求路由也是中间件app.get('请求路径','处理函数') // 接收并处理get请求app原创 2020-08-04 18:07:46 · 740 阅读 · 0 评论 -
node router模块
文档安装npm i router使用const http = require("http")const app = http.createServer()// 获取路由对象并创建路由const router = require("router")()app.on('request', (req, res)=>{ // 启用路由 router(req, res, ()=>{ // 请求结束以后调用 console.log('请求结束') })})// 处理原创 2020-08-03 11:27:36 · 685 阅读 · 0 评论 -
art-template 模版配置
文章目录向模版导入变量设置模版根目录设置模版默认后缀文档向模版导入变量template.defaults.imports.变量名 = 变量值可用于时间格式转换let template = require('art-template');let dateFormat = require('dateformat');template.defaults.imports.dateFormat = dateFormattemplate(view,{time:new Date()})// 模版原创 2020-08-03 09:07:16 · 313 阅读 · 0 评论 -
MongoDB 集合关联 获取关联数据
通常不同集合的数据之间是有关系的,列如文章信息和用户信息存储在不同集合中,但文章是某个用户发表的,要根据文章的 作者id 获取作者信息,就要用到集合关联使用id进行关联使用populate方法进行关联查询文章集合let Article = mongoose.model('article',new mongoose.Schema({ title:{ type:String, required:[true,'文章标题不能为空'] }, author:{ // 使用ID将文原创 2020-08-01 10:09:36 · 750 阅读 · 0 评论 -
mongoose 验证
在创建集合规则时,可以设置当前字段的验证规则。文档验证规则// 类型type:String// 必传required:truerequired:[true,'名称不能为空']// 长度限制minlength: 2, //规定传入的字符串的最小长度maxlength: 4, //规定传入的字符串的最大长度maxlength:[4,'长度不能超过4']// 去除字符串2边空格trim:true // 最大值 最小值min:[1,'最小值为1'],max:[15,'最大值为15']原创 2020-08-01 09:31:48 · 310 阅读 · 0 评论 -
RESTful 风格 API node express 路由设计
文章目录RESTful API 概述node express 路由设计RESTful API 概述一套关于设计请求的规范GET 获取数据 http://localhost:3000/user 获取用户列表POST 添加数据 http://localhost:3000/user 添加用户数据PUT 更新数据 http://localhost:3000/user/1 更新id=1的用户数据DELETE 删除数据 http://localhost:原创 2020-07-29 10:47:49 · 240 阅读 · 0 评论 -
ajax withCredentials 跨域是否携带cookie信息
withCredentials 属性在使用Ajax技术发送跨域请求时,默认情况下不会在请求中携带cookie信息withCredentials: 指定在涉及跨域请求时,是否携带cookie信息,默认falsexhr.withCredentials = true服务端还要设置Access-Control-Allow-Credentials:true 允许客户端发送请求时携带cookie...原创 2020-07-29 09:58:02 · 557 阅读 · 0 评论 -
CORS 跨域资源共享 node express 实现跨域
概念CORS: 全称Cross=origin resource sharing, 即跨域资源共享,它允许浏览器向跨域服务器发送Ajax请求,客服了Ajax只能同源使用的限制。相当于设置白名单Access-Control-Allow-Origin:'http://localhost:3000'// * 允许所有的客户端访问该服务器Access-Control-Allow-Origin:'*'实现服务端设置const express = require("express")const pa原创 2020-07-28 21:05:28 · 286 阅读 · 0 评论 -
跨域 服务端解决方案 node request模块 (服务端调用非同源接口)
同源政策是浏览器给予 Ajax 技术的限制,服务器端是不存在同源政策限制。示例使用 request 模块https://www.npmjs.com/package/requests2 app.jsconst express = require("express")const app = express()// 开启静态资源访问app.use(express.static(path.join(__dirname,'public')))app.get('/test',(req,res)=原创 2020-07-28 19:01:21 · 385 阅读 · 0 评论 -
jsonp 解决同源限制 跨域 原理解析 函数封装
文章目录概念原理原理示例优化示例封装jsonp概念jsonp(json with padding),它不属于Ajax请求,但它可以模拟Ajax请求将json数据当做填充内容原理将不同源的服务端请求地址写在script标签的src属性当中// 通过script向不同源的服务端发送请求<script src="www.example.com"></script><script src="https://cdn.bootcss.com/jquery/3.3.1/j原创 2020-07-27 16:03:43 · 109 阅读 · 0 评论 -
ip和端口号
所有联网的程序都要进行网络通信而计算机中只有一个物理网卡,而且同一个局域网中,网卡的地址必须是唯一的网卡是通过唯一的ip地址来进行定位的ip地址用来定位计算机端口号用来定位具体的应用程序所有需要联网通信的软件都必须具有端口号(占用一个端口号)范围0-65536一些默认端口 尽量不要使用 如80可以同时开启多个服务,但一定要确保端口号不同...原创 2020-07-23 09:24:58 · 136 阅读 · 0 评论 -
node 全局对象 global
全局对象在浏览器中全局对象是window,在node中全局对象是global共有的一些方法console.log()setTimeout()clearTimeout()setInterval()clearInterval().....node运行global.console.log("global.console.log方法")原创 2020-07-23 09:18:48 · 173 阅读 · 0 评论 -
node 异步api处理 util模块(promisify用于改造nodejs 现有的异步api的 返回promis对象 从而支持异步函数语法 async await)
const fs = require("fs")// promisify 用于改造nodejs 现有的异步api的 返回promis对象 从而支持异步函数语法 async awaitconst promisify = require("util").promisify// 把fs.readFile包装一下 返回promis对象const readfile = require(fs.readFile)async function run(){ let t1 = await readfile('原创 2020-07-23 09:13:12 · 291 阅读 · 0 评论 -
node 静态资源 动态资源 mime模块
静态资源服务器端不需要处理,可以直接响应给客户端非资源就是静态资源,例如css,js,img文件静态资源处理静态资源访问目录结构app.jslet http = require('http')let url = require('url')let path = require('path')let fs = require('fs');let mime = require('mime')let app = http.createServer()app.on("request",(原创 2020-07-20 09:47:33 · 258 阅读 · 0 评论 -
路由概念
路由概念户端请求地址 就是在浏览器访问的地址服务端程序代码 请求地址所对应的处理逻辑路由是指客户端请求地址与服务端程序代码的对应关系,简单来说,就是请求什么响应什么原创 2020-07-20 09:08:21 · 478 阅读 · 0 评论 -
node get/post请求参数处理 url/queryString模块
url模块方式使用url.parse 方法将路径解析为一个方便操作的随心,第二个参数true表示直接将查询字符串转成对象let urlObj = url.parse(req.url,true)console.log("urlObj:",urlObj)示例index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="v原创 2020-07-17 19:00:29 · 587 阅读 · 1 评论 -
http协议
http协议概念服务端和客户端沟通的规范超文本(html)超文本传输协议(HyperText Transfer Protocol, 缩写HTTP)规定了如果从网站服务器传输超文本到本地浏览器,他基于客户端服务器架构工作,是客户端(用户)和服务器(网站)请求和应答的标注。报文在http请求和响应的过程中传递的数据块就叫报文,包括要传递的数据和一些附加信息,并遵守规定的格式。请求报文:http请求的过程中传递的数据响应报文:http响应的过程中传递的数据请求报文请求方式GET 请求数据原创 2020-07-17 08:54:24 · 115 阅读 · 0 评论 -
node 地址不同返回不同的响应 中文乱码 响应数据类型 设置状态码
//请求地址不同返回不同的响应var http = require("http");// 1.创建 server var server = http.createServer();// 2.监听 request 事件server.on('request',function(req,resp){ console.log("获取客户端请求"); // console.log("获取客户端ip地址:",req.socket.remoteAddress); // console原创 2020-07-16 09:19:45 · 446 阅读 · 0 评论 -
node 创建本地web服务器
// https://nodejs.org/dist/latest-v10.x/docs/api/http.html// 可以使用 node 非常轻松的构建一个 Web服务器// 在 node 中专门提供了一个核心模块:http// http:帮你创建编写服务器的// 改变代码 要重启服务器// 1.使用 require 加载 http 核心模块var http = require("http");// 2.使用 http.createServer() 创建一个 Web服务器// 返回原创 2020-07-16 09:16:43 · 237 阅读 · 0 评论 -
nodejs 模块加载机制
文章目录require 模块加载规则require加载机制判断模块标识 require("模块标识")路径形式模块核心模块第三方模块 当模块没有路径且没有后缀当模块有路径但没有后缀时优先加载缓存数据require 模块加载规则核心模块 require(“模块名”)第三方模块 require(“模块名”)自定义模块 require(“模块路径”) ;一定要写 ./ 不然会被认为是核心模块 然后找不到报错require加载机制判断模块标识 require(“模块标识”)路径形式模块 以 .原创 2020-07-15 09:18:21 · 197 阅读 · 0 评论 -
第三方模块 nrm 切换npm包下载地址
第三方模块 nrmnrm (npm registry manager): npm下载地址切换工具快速的切换npm的下载地址npm 默认的下载地址在国外,国内下载速度慢使用下载npm install nrm -g查询可用下载地址列表nrm ls切换 npm 下载地址nrm use taobao...原创 2020-07-02 10:36:09 · 186 阅读 · 0 评论 -
node 第三方模块
什么是第三方模块别人写好的、具有特定功能的、能直接使用的模块 即第三方模块。由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。两种存在形式以js文件的形式存在,提供实现项目具体功能的API接口以命令行工具形式存在,辅助项目开发获取第三方模块npmjs.com:第三方模块存储和分发仓库npm (node package manager): node的第三方模块管理工具npm 常用命令下载模块npm install 模块名称 下载的位置 : 命令行工具单前所原创 2020-07-02 10:20:52 · 110 阅读 · 0 评论 -
打开 命令行窗口(PowerShell,cmd)的多种方式
cmd第一个方法然后回车第二个方法选中文件夹 Shift + 右键 打开命令行工具第三个方法window + R 输入cmd 回车第四个方法开始 输入cmdPowerShellwindow + R 输入PowerShell 回车开始 输入PowerShell...原创 2020-07-01 09:22:49 · 3800 阅读 · 0 评论 -
axios 的理解和使用 axios.create(对axios请求进行二次封装) 拦截器 取消请求(axios.CancelToken)
目录axios是什么axios特点axios常用语法axios安装axios简单使用默认get请求postputdeleteaxios难点语法axios.create(config) 对axios请求进行二次封装axios的处理链流程 拦截器拦截器简单使用多个拦截器取消请求1. 基本流程2. 实现功能在 请求拦截器里面统一添加取消请求在 响应拦截器里面统一添加 处理取消请求代码简化 实现上...原创 2020-03-10 17:44:10 · 47448 阅读 · 5 评论 -
node 中的其它成员 __dirname __filename path.join()路径拼接
在每个模块中,除了require、exports 等相关模块API之外,还有2个特殊的成员__dirname :可以用来获取当前文件模块所属目录的绝对路径 动态获取__filename : 可以用来获取当前文件的绝对路径 动态获取console.log("__dirname:",__dirname)console.log("__filename:",__filename)...原创 2019-12-27 17:42:10 · 875 阅读 · 0 评论 -
node 常用path 路径操作模块 路径拼接
path 路径操作模块path.basename("c:/a/b/d/index.js")--> index.js //获取路径 的文件名(包括后缀名)path.basename("c:/a/b/d/index.js",".js") --> index //指定要去除的后缀名path.dirname("c:/a/b/d/index.js")--> c:/...原创 2019-12-27 17:22:14 · 1056 阅读 · 0 评论 -
node 使用 mongoose 操作 mongodb 数据库 导入数据
使用官方的 mongodb 包来操作https://github.com/mongodb/node-mongodb-native使用第三方 mongoose 来操作 MongoDB 数据库mongoose 是基于 MongoDB 官方的 mongodb 包再一次做了封装官网 https://mongoosejs.com/中文版 http://www.mongoosejs.net/安装...原创 2019-12-20 14:56:05 · 575 阅读 · 0 评论 -
Refusing to install package with name "mongoose" under a package npm安装mongoose报错
项目名(安装的目录名)与依赖的名称相同导致安装失败。所以项目起名时,要注意不要与任何依赖名相同。解决方法:在package.json中改变项目名称原创 2019-12-19 16:41:44 · 453 阅读 · 0 评论 -
express 404页面配置
express 对于没有设定的请求路径,默认会返回Cat not get xxx配置要配置 express-art-template要在路由配置之后增加一个app.use(function(req,res){ res.render("404.html")})完整案例/** * app.js 入口模块 * 启动服务 * 做一些服务相关配置 * 模版引擎 * ...原创 2019-12-17 14:58:46 · 1841 阅读 · 0 评论 -
node 路由模块化 express路由模块化
路由模块化入口模块 app.js/** * app.js 入口模块 * 启动服务 * 做一些服务相关配置 * 模版引擎 * body-parser * 提供静态资源服务 * 挂载路由 * 监听端口启动服务 */var express = require("express")var bodyParser = require("body-pa...原创 2019-12-13 09:51:48 · 153 阅读 · 0 评论 -
express 获取get/post请求参数 body-parser中间件
getapp.post("/text",function(req,res){ var com = req.body //只能拿get参数})postbody-parser在express 中没有内置获取 post 参数 的API 需要使用一个第三方包 body-parser安装npm i -S body-parser配置 bodyParser 中间件app.use(b...原创 2019-12-12 16:10:19 · 753 阅读 · 0 评论 -
node moment 时间字符串格式化
安装npm i moment -S导入var moment = require('moment');使用moment(new Date()).format("YYYY-MM-DD")官方文档原创 2019-12-11 17:37:49 · 1250 阅读 · 0 评论 -
express 配置使用 art-template app.locals
art-template官方文档安装npm i art-template express art-template express-art-template -S配置// 配置art-template 模版引擎// 第一个参数,表示当以 .art 结尾的文件的时候,使用 art-template 模版引擎// express-art-template 是专门把 art-templat...原创 2019-12-11 17:24:53 · 225 阅读 · 0 评论 -
node 修改完代码自动重启服务器 nodemon
可以使用一个第三方命名导航工具 nodemon 来解决频繁修改代码重启服务问题nodemon 是一个基于 node.js 开发的第三方命令行工具 需要全局安装安装npm install -g nodemon使用nodemon app.js只有是nodemon app.js 启动的服务,则他会监听文件的变化,当文件变化的时候,就会帮你自动重启服务器...原创 2019-12-07 12:03:35 · 254 阅读 · 0 评论 -
Express 初识
原生的http在某些方面表现不足以应对开发需求,所以要使用框架来加快开发效率,让代码更高度统一官网http://expressjs.com/安装npm install express --saveHolle word// 0 安装 npm i express -S// 1.引入expressvar express = require("express")// 2. 创建服务...原创 2019-12-06 16:56:56 · 87 阅读 · 0 评论