node
教练我真的想敲代码
这个作者很懒,什么都没留下…
展开
-
125Ajax-withCredentials属性携带cookie信息
withCredentials属性在使用Ajax技术发送跨域请求时,默认情况下不会在请求中携带cookie信息。withCredentials:指定在涉及到跨域请求时,是否携带cookie信息,默认值为falseAccess-Control-Allow-Credentials:true 允许客户端发送请求时携带cookie客户端<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">原创 2020-08-02 22:04:30 · 233 阅读 · 0 评论 -
114Express-第三方模块数据库Joi规则描述验证器+错误信息传递
下载npm install joi需要加async await 使用方法//JavaScript对象的规则描述语言和验证器//引入const Joi = require('joi');//定义一个变量schema接收验证规则const schema = { //字符串类型、只能是字母数字字符串、最大最小长度、必填项、自定义错误信息 username: Joi.string().alphanum().min(3).max(30).required().error(new Error(‘原创 2020-07-31 13:52:12 · 813 阅读 · 0 评论 -
113Express-session和cookie登陆
cookiecookie:浏览器在电脑硬盘中开辟的一块空间,主要供服务器端存储数据。cookie中的数据是以域名的形式进行区分的。cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除。cookie中的数据会随着请求被自动发送到服务器端。sessionsession:实际上就是一个对象,存储在服务器端的内存中,在session对象中也可以存储多条数据,每一条数据都有一个sessionid做为唯一标识express-session第三方// 在node.js中需要借助express原创 2020-07-30 23:40:35 · 237 阅读 · 0 评论 -
112Express-密码加密bcrypt、mongoose数据库连接、账号密码非写死、并判断当前环境为开发还是生产环境
数据库明文存储密码不安全bcrypt哈希加密是单程加密方式,只能加密不能解密 1234-abcd在加密的密码中加入随机字符串可以增加密码被破解的难度依赖的环境bcrypt依赖的其他环境python 2.x 安装完配置环境变量 【资源见上传资源】安装好后需要配置到环境变量中node-gypnpm install -g node-gypwindows-build-toolsnpm install --global --production windows-build-too原创 2020-07-30 23:24:51 · 328 阅读 · 0 评论 -
110Express-内置的express.static配置静态资源路径+express-art-template设置模板根目录、设置模板默认后缀+res.render渲染模板app.locals
express.static配置静态资源路径通过express内置的express.static可以方便的托管静态文件,例如img、css、js文件等const express = require('express');const path = require('path');const app = express();// 实现静态资源访问功能app.use(express.static(path.join(__dirname, 'public')))// 端口监听app.listen(原创 2020-07-30 15:26:01 · 634 阅读 · 0 评论 -
109Express-GET、POST参数获取(待补全post获取文件格式的)二进制文件指定上传地址formidable设置路径uploads
GET参数获取 req.queryexpress框架中使用req.query即可获得get参数,框架内部会将get参数转换为对象并返回接收地址栏中问号后面的参数例如http://localhost:3000/index?name=zhangsan&age=30const express = require('express')const app = express();app.get('/index', (req, res) => { console.log(req.que原创 2020-07-30 13:58:08 · 516 阅读 · 0 评论 -
108Express-创建网站服务器、send()、中间件next()use()、错误处理中间键、路由
创建网站服务器const express = require('express');const app = express();send()替代res.end()// 1send会检测内部响应内容的类型 自动设置到响应头中// 2会自动设置http状态码// 3会自动设置响应的内容类型及编码app.get('/', (req, res) => { res.send('hello express')})中间件next// 中间件就是一堆方法,可以接受客户端发来的请求,可原创 2020-07-30 13:06:28 · 238 阅读 · 0 评论 -
107Express-Express框架下载+与原生的区别
express是一个基于node平台的web应用开发框架,他提供了一系列的强大特性,创建各种web应用下载npm install express特性将router是从这个里面抽取出来的1、提供了方便简洁的路由定义方式2、对获取http请求参数进行了简化处理【各种请求参数的处理很复杂、各种请求路径处理、路由等等】路由与老版区别参数处理区别...原创 2020-07-29 21:50:50 · 158 阅读 · 0 评论 -
106node-第三方模块router实现路由+serve-static配置静态资源路径
router使用步骤:npm install router1、获取路由对象2、调用路由对象提供的方法创建路由3、启动路由,是路由生效const gerRouter=require('router')const router=gerRouter();router.get('/add',(req,res)=>{ res.end('hello')})app.on('request',(req,res)=>{ //启用路由 router(req,res,()=>原创 2020-07-29 20:29:16 · 371 阅读 · 0 评论 -
105node-第三方模板引擎art-template设置模板根目录、设置模板默认后缀
设置模板根目录const template=require('art-template');// 设置模板的根目录template.defaults.root=path.join(__dirname,'文件夹根目录')设置模板默认后缀//设置模板默认后缀template.defaults.extname='.art'原创 2020-07-29 18:53:15 · 261 阅读 · 0 评论 -
104node-第三方模块art-template模板引擎+原生、标准模板语法+继承+配置dateformat
模板引擎是第三方模块—让开发者更加友好的方式拼接字符串,使项目代码更加清晰、更加易于维护下载1、npm install art-template 命令进行下载2、使用const template=require(‘art-template’)引入模板引擎3、告诉模板引擎要拼接的模板在哪 const html =template(‘模板路径’,数据)返回值就是拼接好的字符串// 导入模板引擎模块const template = require('art-template');// 将特定模板与原创 2020-07-29 18:42:25 · 255 阅读 · 0 评论 -
103node-mongodb数据库集合关联
使用id对集合进行关联使用populate方法进行关联集合查询populate(‘要显示的关联的字段名称‘)// 用户集合const User = mongoose.model('User', new mongoose.Schema({ name: { type: String }}))// 文章集合const Post = mongoose.model('Post', new mongoose.Schema({ title: { type: Stri原创 2020-07-29 14:30:22 · 196 阅读 · 0 评论 -
102node-mongoose验证+获取错误信息
最大值最小值、最大长度最小长度、必填、枚举列举、自定义验证const postSchema = new mongoose.Schema({ title: { type: String, required: [true, '请传入文章标题'], minlength: 2,//最小长度 maxlength: [5, '太长了'],//最大长度 trim: true//去除字符串两边空格 // min:2原创 2020-07-29 13:28:57 · 491 阅读 · 0 评论 -
101node-MongoDB数据库导入数据
语法mongoimport -d数据库名称 -c 集合名称 --file 要导入的数据文件需要将命令所在的目录添加到环境变量中添加环境变量1、找到mongodb数据库的安装目录。将安装目录下的bin目录方式在path环境变量中C:\Program Files\MongoDB\Server\4.2\bin导入mongoimport --authenticationDatabase admin -u root -p root -d playground -c users1 --file ./原创 2020-07-29 12:17:05 · 108 阅读 · 0 评论 -
098node-第三方模块mongoose创建集合规则生成实例+增删改查
先引入mongoose连接数据库const mongoose = require('mongoose');// 使用mongoose提供的connect方法即可连接数据库mongoose.connect('mongodb://localhost/playground', { useUnifiedTopology: true, useNewUrlParser: true }) .then(() => console.log('连接成功')) .catch(err => c.原创 2020-07-28 22:02:22 · 352 阅读 · 0 评论 -
099node-MongoDB数据库添加账户
添加完注意登录时代码要加入账号密码–auth 加上之后没有账号密码就不能对数据库进行操作了 重点以系统管理员的方式运行powershell连接数据库 mongo查看数据库 show dbs切换到admin数据库 use admin创建超级管理员账户 db.createUser({user:‘用户名’,pwd:‘密码’,roles:[‘root’]}) 【超级管理员】切换到blog数据 use blog【blog是自己所新建的数据库根据需求改名字】创建普通账号原创 2020-07-28 21:18:37 · 182 阅读 · 0 评论 -
100node-数据库添加完管理员账户密码后的坑 --authenticationDatabase admin
1不能在使用安装默认的无账号密码登陆mongoose.connect('mongodb://localhost/playground', { useUnifiedTopology: true, useNewUrlParser: true }).then(() => console.log('连接成功')) .catch(err => console.log('失败', err))会报错compass也要输入账号密码才可以登陆2 ?authSource=admin的坑原创 2020-07-28 20:56:40 · 3361 阅读 · 0 评论 -
097node-第三方模块mongoose连接数据库
// Node.js通过第三方包Mongoose来操作MongoDB数据库!!!// npm install mongoose 命令下载启动MongoDB在命令行工具中运行 net start mongoDB 即可以启动MongoDBconst mongoose=require ('mongoose');// 使用mongoose提供的connect方法即可连接数据库mongoose.connect('mongodb://localhost/playground', { useUnifiedT原创 2020-07-28 19:28:18 · 120 阅读 · 0 评论 -
095node-系统模块querystring原始获取GET、POST参数
get 见093url系统模块处理请求地址GEThttps://blog.csdn.net/Gy_9543/article/details/107623078POSTpost的数据在请求报文中post参数是通过事件的方式接受的// 创建web服务器// 引用系统模块const http = require('http');// 创建web服务器const app = http.createServer();const querystring=require('querystring')原创 2020-07-28 11:23:23 · 235 阅读 · 0 评论 -
094node-http状态码+第三方模块mime判断相应头文件返回类型
http状态码200请求成功404请求的资源没有被找到500服务器端错误400客户端请求语法有误//书写响应头,第一个参数是状态码默认是200res.writeHead(400,{//返回类型 'content-type': 'text/html;charset=utf-8' });根据返回的内容类型不同设置对应的参数charset=utf-8 解析中文text/plain 纯文本(默认)text/html (解析h2等标签)text/cssapplicat原创 2020-07-28 10:02:45 · 157 阅读 · 0 评论 -
093node-url系统模块处理GET请求地址、获取请求方式、请求报文
获取请求方式 req.method获取请求地址 req.url获取请求报文 req.headers系统模块url用于处理url地址// 用于处理url地址const url = require('url');原创 2020-07-27 22:26:24 · 163 阅读 · 0 评论 -
092node-通过系统模块http创建web服务器
app.on 为服务器添加事件res.end(里面的内容就是要相应的内容)// 创建web服务器// 引用系统模块const http = require('http');// 创建web服务器const app = http.createServer();// 当客户端发送请求的时候app.on('request', (req, res) => { // 获取请求方式 // req.method console.log(req.method); con原创 2020-07-27 21:52:23 · 174 阅读 · 0 评论 -
091node- Gulp项目上线HTML、CSS、JS文件压缩合并
Gulp能做什么将机械化操作编写成任务,想要执行机械化操作时执行一个命令行命令任务就能自动执行了1、项目上线HTML、CSS、JS文件压缩合并2、es6的语法转换3、公共文件抽离4、修改文件浏览器自动刷新如何下载使用1使用npm install gulp 下载gulp库文件(是库文件不加全局-g)2在项目根目录下建立gulpfile.js文件3重构项目的文件夹结构,src目录放置源代码文件、dist目录放置构建后文件4在gulpfile.js文件中编写任务5在命令行工具中执行gulp任原创 2020-07-27 15:06:30 · 201 阅读 · 0 评论 -
090node-第三方模块 nodemon下载 nrm切换国外下载地址
nodemon下载// nodemon是一个命令行工具,用以辅助项目开发// 在node.js每次修改文件都要在命令行中重新执行改文件,非常繁琐// npm install nodemon -g 下载 -g是全局安装// nodemon .\module-b.js 执行监控保存的文件// ctrl+c可以停止监控nrm切换国外下载地址nrm(npm registry manager):npm下载地址切换工具1使用npm install nrm -g 下载它2查询可用下载地址列表nrm原创 2020-07-27 13:23:31 · 245 阅读 · 0 评论 -
089node-第三方模块 npm、node_modules、package-lock.json、package.json
别人写好的具有特定功能的第三方模块,由于第三方模块通常都是有多个文件组成并且被放置在一个文件夹中,所以又名包// 两种存在形式// 以js文件的形式存在,提供实现项目具体功能的api接口// 以命令行工具形式存在。辅助项目开发npmjs.com 第三方模块的存储和分发仓库获取第三方模块npm :node的第三方模块管理工具(node已经集成好了不需要单独下载)下载:npm install 模块名称 (属于本地安装)默认下载到当前工作目录下本地安装(只有自己项目可以用------库文件经常原创 2020-07-27 13:11:09 · 164 阅读 · 0 评论 -
088node-系统模块 path路径操作模块__dirname绝对路径
进行路径拼接上传头像其实就是将文件存到服务器硬盘的某一个文件夹中,路径需要被拼出来拼接语法// 导入path模块const path = require('path');// 路径拼接let finiaPath = path.join('itcast', 'a', 'b', 'c.css');//输出结果itcast\a\b\c.cssconsole.log(finiaPath);__dirname绝对路径// 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具当前工原创 2020-07-27 12:51:48 · 225 阅读 · 0 评论 -
087node-系统模块 fs文件操作模块
node运行环境提供的api,因为这些api都是以模块化的方式进行开发,所以我们又称node运行环境提供的api为系统模块文件读取// 系统模块fs文件操作// file 文件 systom系统 文件操作系统const fs = require('fs');// 读取上一级css目录下中的base.cssfs.readFile('./1.js', 'utf-8',(err, doc) => { //如果文件读取发生错误 err的值为错误对象 // doc参数为文件内容原创 2020-07-27 12:29:58 · 178 阅读 · 0 评论 -
086node-exports对象成员导出、require导入
exports导出exports是module.exports的别名(地址引用关系)导出对象最终以module.exports为准const greeting=name=>`hello ${name}`;module.exports.greeting=greeting;require导入const a=require('./4module.exports');console.log(a.greeting('张三 '));...原创 2020-07-27 12:05:23 · 126 阅读 · 0 评论 -
085node-shift+右键,没有“在此处打开命令窗口”选项
https://jingyan.baidu.com/article/636f38bb6871dcd6b84610c8.html原创 2020-07-27 11:36:59 · 289 阅读 · 0 评论 -
084node-node.js安装
下载地址https://nodejs.org/en/安装步骤验证是否安装成功安装失败问题解决12原因找到环境变量添加上即可原创 2020-07-27 11:20:21 · 94 阅读 · 0 评论