
Web
web开发
黎先生你好
这个作者很懒,什么都没留下…
展开
-
owasp top 10 的漏洞原理和测试方法
1. Top10 漏洞概述译自:https://owasp.org/www-project-top-ten/1.1 InjectionInjection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent to an interpreter as part of a co...原创 2020-03-08 08:28:28 · 3813 阅读 · 0 评论 -
深入理解Javascript闭包(Closure)
1. 变量作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量局部变量Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n = 999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。 ...原创 2020-03-07 11:31:04 · 222 阅读 · 0 评论 -
Javascript单线程如何实现异步操作
转载自阮一峰老师: JavaScript 运行机制详解:再谈Event Loop http://www.ruanyifeng.com/blog/2014/10/event-loop.html1. 为什么JavaScript是单线程?JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScr...转载 2020-03-05 22:28:19 · 906 阅读 · 0 评论 -
服务端高并发分布式架构演进之路
来源: https://segmentfault.com/a/11900000186261631. 概述本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径2....转载 2020-03-05 07:37:38 · 274 阅读 · 0 评论 -
Javascript之函数防抖与函数节流
JS之函数防抖与函数节流函数防抖和函数节流都是老生常谈的问题了。这两种方式都能优化 js 的性能。有些人可能会搞混两个的概念。所以,我以自己的理解,来解释这两个概念的含义。并且列举在小程序中这两个方法的使用。防抖 debounce函数防抖: 英文 debounce 有防反跳的意思,大致就是指防止重复触发。那么,函数防抖,真正的含义是:延迟函数执行。即不管debounce函数触发了多久,只在最...原创 2020-02-14 18:42:06 · 266 阅读 · 0 评论 -
微信小程序图片在真机无法显示如何解决
案例分析图片在模拟器下能正常显示,但是在真机下无法显示。查了查资料是因为图片地址用的是http的,需要替换成https。可以使用js里最基础的替换字符串,代码如下:url.replace("http://","https://")...原创 2020-02-07 23:57:45 · 1484 阅读 · 0 评论 -
微信小程序实现类DOM操作
需求如图1.1所示,当用户点击 + 添加时,需要新增一个输入框。这有点类似于平时写网站时添加DOM节点操作。但是微信小程序并不支持DOM节点的操作,所以我们可以曲线救国用下面的方式实现类似的DOM节点添加操作。Figure 1.1 project代码演示<view class="input-wrap"> <block wx:for="{{credentialList}...原创 2020-02-02 22:54:19 · 4580 阅读 · 0 评论 -
jade的使用
在 Express 中调用 jade 模板引擎jade 变量调用if 判断循环Case 选择在模板中调用其他语言可重用的 jade 块 (Mixins)模板包含 (Includes)模板引用 (Extends)在 Express 中调用 jade 模板引擎var express = require('express');var http = require('http');var ap原创 2020-01-28 05:26:24 · 1756 阅读 · 0 评论 -
高德地图api中的adcode城市编码
[{ "provice": "安徽", "city": [{ "adcode": "340100", "name": "合肥" }, { "adcode": "340200", "name": "芜湖" }, { "adcode": "340300", "name": "蚌埠" }, { "adcode": "340400", "name": "淮南" ...原创 2019-05-09 11:24:29 · 41136 阅读 · 4 评论 -
nodejs搭建微信小程序mock服务
现在的程序架构基本都是前后端分离,前端负责调用后端提供的restful api,但是当我们还没拿到后端的api时,这个时候我们就需要自己mock数据了。但是微信小程序无法像浏览器一样直接使用mockjs,所以网上搜到的mockjs教程在微信小程序上基本都没法用。所以今天记录一下用nodejs搭建一个mock后台服务。1. 安装nodejs环境这里不详述,搞前端的都懂2. 安装express...原创 2019-07-22 23:28:25 · 848 阅读 · 0 评论 -
npm install报错,MSB
npm install --global --production windows-build-toolsVisual C++ 2015 Build Tools更新framework后,安装Visual C++ 2015 Build Tools原创 2019-05-17 23:55:19 · 281 阅读 · 0 评论 -
ubuntu 安装最新nodejs
1. 去官网下载最新的nodejs tar包下载链接: https://nodejs.org/en/ # xz -d node-v9.tar.xz # tar -xvf node-v9 # cd node-v9 # cd bin ./node -v2. 将node和npm设置为全局 # sudo ln /home/ubuntu/node-v9/bi...原创 2018-04-08 22:02:03 · 346 阅读 · 0 评论 -
nodejs修改ejs扩展名为html
1.在app.js的头上定义ejs:代码如下:var ejs = require('ejs'); 2.注册html模板引擎: 代码如下:app.engine('html',ejs.__express); 3.将模板引擎换成html: 代码如下:app.set('view engine', 'html'); 4.修改模板文件的后缀为.html。原创 2017-10-12 22:48:19 · 1835 阅读 · 0 评论 -
linux下如何安装最新版本的nodejs
分以下三步,亲测有效。1. sudo apt-get update2. sudo apt-get install n3. sudo n stable原创 2017-10-12 22:30:58 · 1018 阅读 · 0 评论 -
使用handlebars时script标签中如何获取后台传递的数据
var data = ' {{ data }} ';当后台render的数据为string类型时,只需要在变量的{{ }} 加上引号即可。当render的数据是json类型的时候,如何获取数据?您要是知道麻烦教教我原创 2017-08-22 20:24:42 · 2561 阅读 · 0 评论 -
nodejs handlebars 如何添加helper
hbsHelper.jsvar hbs =require('hbs');hbs.registerHelper('test',function(a) {return 'test';});// 需要注册多个helper时,直接再添加hbs.registerHelper();//然后再app.js中调用hbsHelper.js文件即可app.j原创 2017-08-22 16:33:09 · 1057 阅读 · 0 评论 -
centos安装nodejs环境
自动安装法1. 获取管理员权限sudo root 2. 安装epel-releaseyum install epel-release说明:什么是EPEL? EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scient原创 2017-05-03 19:00:23 · 555 阅读 · 0 评论 -
nodejs mysql 执行多条sql语句
执行多条查询语句为了安全起见,默认情况下是不允许执行多条查询语句的。要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能: var connection = mysql.createConnection( { multipleStatements: true } ); 这一功能打开以后,你就可以像下面的例子一样同时使用多条查询语句:原创 2017-04-20 15:00:12 · 6857 阅读 · 0 评论 -
nodejs mysql 实现分页
代码如下var express = require('express');var router = express.Router();var settings = require('../settings.js');var mysql = require('mysql2');router.get('/', function(req, res, next) {原创 2017-04-19 20:45:56 · 7915 阅读 · 4 评论 -
express4 router用法详解
Express.js 4.0 有加入一個新的 Router 功能,它就像一個迷你的應用程式,可以讓應用程式內部的路由撰寫更方便、更有彈性。Express.js 在 4.0 版中有許多新的功能,其中一項主要的功能就是 Router,以下我們介紹如何使用 Router 功能來撰寫應用程式。基本應用程式首先建立一個 package.json 檔案,定義套件的相依資訊:{转载 2017-03-11 22:52:41 · 2398 阅读 · 0 评论 -
nodejs 路由(URL映射)
1、创建路由//加载express框架var express = require('express');//创建一个express实例var app = express();//创建express的路由功能,可以根据需要创建多个路由,需要多少,创建多少。var router = express.Router();router.use(function(req, res, next转载 2017-03-11 22:25:43 · 2255 阅读 · 0 评论 -
nodejs 之req.body req.query req.params 三种获取参数的方法
nodejs Express 4.x req.body req.query req.params 三种获取参数的方法第一种情况:http://localhost:3000/testparams/lixing,服务端代码这样写:router.get('/testparams/:anything', function (req, res) {res.send('anything is转载 2017-03-10 23:03:48 · 6386 阅读 · 0 评论 -
使用router.post()无法获取到req.body
这是我的初始代码var router = require('express').Router();router .get('/', function(req, res, next) { res.render('reg', { title: '注册' }); });router.post('/', function(req, res) {原创 2017-02-27 22:59:06 · 8876 阅读 · 1 评论 -
express 下的handlebars应用
在分析转义Handlebars+express问题之前先把nodejs+handlebars+express的项目构建过程说明。 express 4+handlebars构建项目快捷的方式是: 如图可选ejs/jade/hbs等模板引擎,现在我们选hbs(注意express的版本是4.0+)express --hbs demo11我选择整合handlebars的方式是在已转载 2017-02-22 00:16:15 · 2403 阅读 · 0 评论 -
pm2 相关命令
二、安装Linux Binaries下载地址:https://nodejs.org/distcd oneinstack/srcwget https://nodejs.org/dist/v4.2.4/node-v4.2.4-linux-x64.tar.gztar xzf node-v4.2.4-linux-x64.tar.gzcp node-v4.2.4-linu转载 2017-02-18 22:59:48 · 10336 阅读 · 0 评论 -
express 中间件
MiddlewarebasicAuth()基本的认证中间件,在req.user里添加用户名用户名和密码的例子:app.use(express.basicAuth('username', 'password'));校验回调:app.use(express.basicAuth(function(user, pass){ return 'tj' == user && '转载 2017-02-18 21:06:21 · 3255 阅读 · 0 评论 -
nodejs操作mongodb数据库
1.增加var MongoClient = require("mongodb").MongoClient;var DB_URL = "mongodb://localhost:27017/chm";function insertData(db){ var devices = db.collection('vip'); var data = {"name":"node","转载 2017-02-18 20:46:02 · 914 阅读 · 0 评论 -
Express框架学习总结
Express框架学习总结 最近学了Express框架,在学习的过程中,参考了一些资料,感觉Express框架比原生Node.js好用多了。下面我将我学习总结的内容如下: Express中文网 http://www.expressjs.com.cn/ Express英文网 ht转载 2017-02-18 20:41:43 · 598 阅读 · 0 评论 -
body-parse的用法
express第三方中间件研究之bodyParser中间件转载至:http://www.cnblogs.com/lianer/p/5178693.html接触nodejs已有一段时间了,但最近才开始落实项目,于是使用express应用生成器生成了一个应用。开发过程中发现ajax提交的数据无法被express正确的解析,主要的情况是这样的:// 浏览器端post一个对转载 2017-02-18 00:46:34 · 2105 阅读 · 0 评论 -
express.static 作用及用法
express相信是很多人用nodejs搭建服务器的首选框架,相关教程有很多,也教会了大家来如何使用。如果你想更深的了解他的细节,不妨和我一起来研究一下。先来看一个每个人都用到的方法app.use(express.static(__dirname+'/public'));你肯定在你的app文件中这么用过它: app.use(express.static(__dirname + '转载 2017-02-18 00:25:28 · 28437 阅读 · 3 评论 -
express 路由
路由路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [callback...], callback),app 是 express 对象的一个实例, METHOD 是一个 HTTP 请求方法, path 是服务器上的路径, callback 是转载 2017-02-18 00:24:38 · 354 阅读 · 0 评论 -
怎样爬取网页的源码
var http = require('http');var url = http://blog.youkuaiyun.com/dlmmu/article/details/54586460'; //url换成你需要要的页面的地址http.get(url, function(res) { var html = ''; res.on('data', function(data)原创 2017-01-17 20:21:46 · 6334 阅读 · 0 评论 -
Ubuntu16.04安装nodejs
# apt-get update # apt-get install -y python-software-properties software-properties-common # add-apt-repository ppa:chris-lea/node.js # apt-get update # apt-get install nodejs//验证是否安装成功原创 2017-01-17 20:18:24 · 2191 阅读 · 0 评论 -
JavaScript中this的作用域
// var pet = {// word: '...',// speak: function() {// console.log(this.word);// console.log(this == pet);// }// }// pet.speak();//**************************原创 2017-01-16 13:05:41 · 370 阅读 · 0 评论 -
css 中 absolute和relative属性的用法和区别
原文:http://developer.51cto.com/art/201009/225201.htm这里向大家简单介绍一下CSS+DIV布局中absolute和relative属性的用法和区别,定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在,而定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在。详解CS...转载 2018-04-17 22:36:13 · 1020 阅读 · 0 评论 -
css 画三角形原理
在进行WEB应用开发的过程中,我们经常会需要使用到三角形图标,例如下面这个下拉选择控件右侧的收缩箭头。又或者像下面这种情形。搜索网络之后发现三角形可以通过以下CSS代码实现:[html] view plain copy print?#triangle_bottom{ height:0px; width:0px;  ...转载 2018-04-17 21:52:32 · 408 阅读 · 1 评论 -
简单了解css
全栈工程师开发手册 (作者:栾鹏)一个demo学会css css选择器全解 css操作语法全解学习了css权威指南这本书,自己喜欢边学边总结边写demo,所以写了这篇文章,包含了大部分的css编程知识。让你一个demo掌握css编程,如果有问题可以留言。css的知识主要包括两部分:1、选中样式,2、设置样式。对应的css语法为1、css选择器,2、c转载 2017-10-30 21:51:24 · 423 阅读 · 0 评论 -
DIV的CSS height:100%无效的解决办法
css代码加上html,body{height: 100%;margin: 0;}原创 2017-04-19 22:05:04 · 1059 阅读 · 0 评论 -
CSS定位规则之BFC
目录(?)[+]BFCBlock Formatting CoFSADntext直译为块级格式化范围DEMO1相关文档:http://blog.sina.com.cn/s/blog_877284510101jo5d.htmlhttp://www.cnblogs.com/dojo-lzz/p/3999013.htmlhttp://www.cnblogs.co转载 2017-04-04 14:00:12 · 728 阅读 · 0 评论 -
css float详解
CSS里浮动float是个概念比较暧昧的属性,撸主最早对浮动float的认识是基于布局的,认为float元素就是用于:“让block元素无视float元素,让inline元素让流水一样围绕着float元素”来实现浮动布局。现在想想,当初真是图样图森破。其实这个属性撸主一直是比较模糊的,感觉似懂非懂。本着和自己死磕的精神,在参考了许多大神的博文后,将我的理解整理归纳在本文中,希望能可以帮助到你。转载 2017-04-04 13:34:00 · 1225 阅读 · 0 评论