Angular学习记录

// 安装脚手架
npm install -g angular-cli
// 新建Angualr项目
ng new angualrDemo --skip-install
注:如果按照官网的教程只用输入 ng new 项目名 即可,但是这种情况下它会默认使用npm帮我们创建项目并且安装各种依赖,非常耗时间,所以我们后面加上-- skip-install跳过安装依赖的过程.
启动项目
ng serve 默认启动在端口4200
ng serve – open,启动并打开浏览器
ng serve --port 端口
// 终结

linux安装svn服务器(yum方式)和SVN项目同步

1.查看yum是否安装

在终端中输入yum即可如果已经安装,会显示yum的参数,如果没有安装,会提示yum未安装或无效命令……

2.安装svn

yum -y install subversion

出现下面截图后,表示安装完成。

3.创建目录并配置

建立版本库目录(repo为要创建的版本库名称,可自定义)

mkdir -p /data/svn/repo

配置 

svnadmin create  /data/svn/repo

执行上面的命令后,自动建立repo测试库,查看/data/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

4.用户密码passwd配置

cd /data/svn/repo/conf
vi passwd

修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
hello=123

用户名=密码

以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

这样我们就建立了hello用户, 123密码

5.权限控制authz配置

vi  authz

目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

请别落下[/]

#设置[/]代表根目录下所有的资源   或者写成[repl:/]
[/]
hello = rw

意思是hello用户对repo测试库下所有的目录有读写权限,当然也可以限定。 如果是自己用,就直接是读写吧。

以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

6.服务svnserve.conf配置

vi svnserve.conf

追加以下内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限 
auth-access=write
#密码数据库的路径 
password-db=passwd
#访问控制文件 
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 
realm=/data/svn/repositories

7.防火墙开启

/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

8.启动svn服务器

svnserve -d -r /data/svn/

9.访问

在windows客户端,输入地址:svn://ip地址:3690/repo(iP地址为你linux的ip,repo为前文创建的版本库名称,3690为svn默认端口)

端口默认为3690,输入配置好的用户名和密码即可。

如果连接不上可能是服务器端口没开启

请 ping 3690端口确认是否通畅

telnet ip地址 3690

10.其他命令

# 查看占用端口的进程
lsof -i:3690   
# 关闭进程 21882
kill -9 进程号(上一步查到的pid)
#启动SVN (多个版本库)  /data/svn 是svn 安装位置
svnserve -d -r   /data/svn

11.svn代码同步到项目中

# 手动更新 
svn co svn://ip地址:3690/库名 同步的地址 --username 用户名 --password 密码
# 示例
svn co svn://127.0.0.1:3690/repo /www/wwwroot/repo --username hello --password 123

1.使用post-commit 实现同步代码

  代码同步需要使用到hooks文件目录下的post-commit勾子文件,在hooks下很多tmpl文件,这些文件都是勾子的模板来的,
  如果需要使用的时候copy 一份去掉.tmpl后缀便可使用

# 先移动到这个文件夹,再改名
cd /data/svn/repo/hooks/
cp post-commit.tmpl post-commit
# 设置post-commit 文件的权限 切记这步一定不可漏,不然后期运行时会报错
chmod 777 post-commit 

这样就会生成一个有效的post-commit 文件,文本改成下面的样式

#!/bin/sh
# 上边这个不是注释,必须带上,我之前在这里踩坑,以为是注释内容没带上
# 其实是linux用于指定由哪个解释器来执行脚本的标记
REPOS="$1"
REV="$2"
mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
# 项目版本库地址
BASEPATH=/www/wwwroot/repo
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
# 账号 hello 密码 123
svn update $WEBPATH --username hello --password 123 --no-auth-cache

最后操作是关闭服务然再打开服务,请参考上方其他命令重启svn服务

电脑端SVN地址:

https://pan.baidu.com/s/1kBjFWJCGCSuHqvlRR8fkIQ?pwd=kj73

文章来源

原文地址:https://www.freesion.com/article/711642592/

原文地址:https://www.runoob.com/w3cnote/linux-subversion-yum.html

原文地址https://blog.csdn.net/baixiaoshengaaa/article/details/108866038

Css 相关操作

css超出部分显示省略号

/*单行超出部分显示…*/
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;

/*多行超出部分显示…*/
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;

npm安装教程  node14

1下载安装

https://pan.baidu.com/s/1LRZA8adOieeldCTK5wuSaQ?pwd=b5ty

可以使用默认路径,本例子中自行修改为d:\nodejs

一路点Next,最后点Finish完成

2.打开CMD,检查是否正常

输入 node-v ,如图已经安装好

3.再看看另外2个目录,npm的本地仓库跑在系统盘c盘的用户目录了(没见到npm-cache是因为没有用过,一使用缓存目录就生成了),我们试图把这2个目录移动回到D:\nodejs

先如下图建立2个目录

node_global node_cache

然后运行以下2条命令

  • npm config set prefix “D:\nodejs\node_global”
  • npm config set cache “D:\nodejs\node_cache”

3.配置镜像站

输入命令npm config set registry=http://registry.npm.taobao.org 配置镜像站

检查一下镜像站行不行 命令 npm config get registry

出现下图表示成功

4.注意

此时,默认的模块D:\nodejs\node_modules 目录
将会改变为D:\nodejs\node_global\node_modules 目录,
如果直接运行npm install等命令会报错的。
我们需要做1件事情:
1、增加环境变量NODE_PATH 内容是:D:\nodejs\node_global\node_modules

(注意,一下操作需要重新打开CMD让上面的环境变量生效)

安装淘宝npm(cnpm)

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

将 D:\nodejs\node_global 添加进环境变量

输入cnpm -v命令,查看结果

如果安装后出现 cmd管理员模式才能运行node 的错误

cmd输入命令set-ExecutionPolicy RemoteSigned

之后输入YES

内容来源:

https://www.cnblogs.com/goldlong/p/8027997.html

https://www.csdn.net/tags/NtzaEg1sNzM3MzktYmxvZwO0O0OO0O0O.html

uniapp实现一键登录

1、开通uni一键登录服务

1)需要登录DCloud开发者中心,申请开通一键登录服务。(注:已在开发者中心开发了项目应用获取appid)

2)进入基础配置配置相关的信息,我这个是已经配置好了,在获取用户手机号码时需要云服务用到的ApiKeyApiSecret可在这里获取

真机调试无需添加应用,如需打包使用请添加。一键登录应用ID为离线打包时配置的appid

3)添加服务空间

2、uni-app项目开通uniCloud服务

1)在uni-app项目中创建云开发环境,可阿里云或者腾讯云(我的是阿里云)

2)创建云函数,右键云开发环境创建

3)云函数使用

'use strict';
exports.main = async (event, context) => {
	// event里包含着客户端提交的参数
		const res = await uniCloud.getPhoneNumber({
			appid: 'xxxx', // 替换成自己开通一键登录的应用的DCloud appid,使用callFunction方式调用时可以不传(会自动取当前客户端的appid),如果使用云函数URL化的方式访问必须传此参数
			provider: 'univerify',
			apiKey: 'caf274f2f33c8715725f28ee5c755602', // 在开发者中心开通服务并获取apiKey
			apiSecret: '03f484268054c2b8f4cfb575ed5f2d89', // 在开发者中心开通服务并获取apiSecret
			access_token: event.access_token,
			openid: event.openid
		})
		// 这里已经成功获取手机号,访问后端接口处理
		const phone = res.phoneNumber
		const apiUrl = "xxxx" // 后端登录验证地址
		
		return await uniCloud.httpclient.request(apiUrl, {
		    method: 'POST',
		    data: {
		      phone: phone
		    },
		    contentType: 'json', // 指定以application/json发送data内的数据
		    dataType: 'json' // 指定返回值为json格式,自动进行parse
		  })
};

4)将云函数上传到云服务器(点击云函数右键上传)

5)项目配置(manifest.json中app模块的一键登录勾选)

3、项目开发

1)页面点击一键登录(客户端-预登录)

uni.preLogin({
					provider: 'univerify',
					success(res) { //预登录成功
					console.log('预登录成功'); 
						uni.login({
							provider: 'univerify',
							univerifyStyle: {
								"icon": {
									"path": "static/0105c858eeffaca8012049ef28010c.jpg" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo   
								},
							},
							success(res) { // 登录成功
								uniCloud.callFunction({
									name: 'get_phone_with_card_token', // 你的云函数名称
									data: {
										access_token: res.authResult
											.access_token, // 客户端一键登录接口返回的access_token
										openid: res.authResult.openid // 客户端一键登录接口返回的openid
									}
								}).then(res => {
									console.log(res);
									if (res.result.data.status == 0) {
										// 登陆失败操作
										console.log('登陆失败操作');
									} else {
										console.log('登陆成功操作');
										// 登陆成功操作
										uni.closeAuthView()
									}
								}).catch(err => {
									console.log("获取失败");
								})
							},
							fail(res) { // 登录失败
							}
						})
					},
					fail(res) { // 预登录失败
						// 不显示一键登录选项(或置灰)
						// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
						console.log('失败', 2222);
						console.log(res.errCode)
						console.log(res.errMsg)
					}
				});

2)运行时可在云函数中查看日志(判断是否请求成功)

注)如果手机没有插入有效的sim卡,或者手机蜂窝数据网络关闭,都有可能造成预登陆校验失败。(所以运行测试时需要在有sim卡的真机上测试,使用数据线连接电脑和手机,将项目运行在手机上)
连接后可自动检测

原文链接https://blog.csdn.net/weixin_42373488/article/details/113182370

JavaScript 正则表达式

/*是否带有小数*/
function    isDecimal(strValue )  {  
   var  objRegExp= /^\d+\.\d+$/;
   return  objRegExp.test(strValue);  
}  

/*校验是否中文名称组成 */
function ischina(str) {
    var reg=/^[\u4E00-\u9FA5]{2,4}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

/*校验是否全由8位数字组成 */
function isStudentNo(str) {
    var reg=/^[0-9]{8}$/;   /*定义验证表达式*/
    return reg.test(str);     /*进行验证*/
}

/*校验电话码格式 */
function isTelCode(str) {
    var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
    return reg.test(str);
}

/*校验邮件地址是否合法 */
function IsEmail(str) {
    var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
    return reg.test(str);
}

css3美化滚动条样式

/定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸/
::-webkit-scrollbar{
width: 7px;
height: 7px;
background-color: #F5F5F5;
}

/定义滚动条轨道 内阴影+圆角/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}

/定义滑块 内阴影+圆角/
::-webkit-scrollbar-thumb{
border-radius: 10px;
box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .1);
background-color: #c8c8c8;
}

node.js安装教程

一、使用之前,我们先来掌握3个东西是用来干什么的。

npm: Nodejs下的包管理器。

webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。

vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装)

开始:

https://nodejs.org/en/

如图,下载8.9.3 LTS (推荐给绝大部分用户使用)

下载安装,可以使用默认路径,本例子中自行修改为d:\nodejs

一路点Next,点Finish完成

打开CMD,检查是否正常

再看看另外2个目录,npm的本地仓库跑在系统盘c盘的用户目录了(没见到npm-cache是因为没有用过,一使用缓存目录就生成了),我们试图把这2个目录移动回到D:\nodejs

先如下图建立2个目录

然后运行以下2条命令

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

输入 npm list -global 可以看到目录已经改变了

此图片的alt属性为空;文件名为1287619-20171212145854347-808420142.png

输入命令npm config set registry=http://registry.npm.taobao.org 配置镜像站

检查一下镜像站行不行命令 npm config get registry

Npm info vue 看看能否获得vue的信息

注意,此时,默认的模块D:\nodejs\node_modules 目录

将会改变为D:\nodejs\node_global\node_modules 目录,

如果直接运行npm install等命令会报错的。

我们需要做1件事情:

1、增加环境变量NODE_PATH 内容是:D:\nodejs\node_global\node_modules

(注意,一下操作需要重新打开CMD让上面的环境变量生效)

一、测试NPM安装vue.js

命令:npm install vue -g

这里的-g是指安装到global全局目录去

二、测试NPM安装vue-router

命令:npm install vue-router -g

运行npm install vue-cli -g安装vue脚手架

编辑环境编辑path

对path环境变量添加D:\nodejs\node_global

win10以下版本的,横向显示PATH的,注意添加到最后时,不要有分号【;】

原文地址 https://www.cnblogs.com/goldlong/p/8027997.html

uni-app制作微信小程序获取openid和用户头像昵称等登录信息

// 获取昵称、头像、性别、城市等个人信息
// 每次通过该接口获取用户个人信息均需用户确认
uni.getUserProfile({
  desc: '获取个人信息用于测试',
  success: function (infoRes) {
	console.log('用户昵称为:' + infoRes.userInfo.nickName);
	console.log('用户昵称为:' + infoRes.userInfo.avatarUrl);
  }
});

// 获取微信code 通过code传入后端获取openid
uni.login({
  provider: 'weixin',
  success: function (loginRes) {
	console.log(loginRes.code);
  }
});

原信息链接https://uniapp.dcloud.io/api/plugins/login?id=login

原信息链接https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801?highLine=getUserProfile%253Afail