2022年1月28日
JavaScript 日期增加需要考虑夏令时的问题。如果处在有夏令时的时区,会出现以下的问题。
https://stackoverflow.com/a/9989458
var a = new Date("2013-03-10T00:00:00.000Z"); a.setDate(a.getDate() + 1); a.toISOString(); //is "2013-03-10T23:00:00.000Z". 增加日期后,发现还是在2013-03-10 。
因为Date的构造函数解析日期字符串的行为在不同浏览器之间不一定一致。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date
注意: 由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。 对 ISO 8601 格式的支持中,仅有日期的串 (例如 “1970-01-01”) 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。
如果只是需要取日期,可以使用UTC时间。
date = date.setUTCDate(date.getUTCDate()+1); 或者,直接用年月日构造日期。
date = new Date(year, monthIndex, day) new Date(year, monthIndex, day+1) //自己分别解析年月日 ……
阅读全文
2022年1月22日
docker在映射端口的时候,会自动修改iptables直接开放端口,自己设置的规则就没有作用。有时候我们希望外网不能直接访问。
通常情况下,不允许外网访问端口的设置
iptables -A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport {端口号} -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport {端口号} -j REJECT 在docker端口映射设置之后,先查看一下修改的规则。
iptables -L DOCKER -n --line-number 修改规则阻止外网访问。
iptables -R DOCKER 1 -p tcp -m tcp -s 127.0.0.1/32 --dport {端口号} -j ACCEPT 恢复允许访问
iptables -R DOCKER 1 -p tcp --dport 3000 -j ACCEPT 参考:
https://segmentfault.com/q/1010000000215159……
阅读全文
2022年1月8日
在mocha测试中使用Promise函数
可以在function前使用async关键字
const initFn = () => { return new Promise(resolve => { message.init().then(()=>resolve()); }) } describe('message test', async function () { await initFn(); it('promise test', function (done) { yourpromisefunction().then(response => { console.log(response); done(); }) .catch(err => { console.log("error:",err) done(err); }) .catch(done); }) run(); } 运行mocha时要添加–delay参数,测试代码中需要添加run(),不然函数运行完不进行接下来的测试。
https://mochajs.org/#delayed-root-suite
mocha --delay --recursive ./test/unit/*.test.js 一些mocha的例子:
https://gist.github.com/haroldtreen/5f1055eee5fcf01da3e0e15b8ec86bf6
如果需要在整个测试前运行可以参考下方链接:
https://stackoverflow.com/a/41874640……
阅读全文
2021年10月8日
内部网络 nat 设置 虚拟网络交换机选项,选择内部网络
在主机器中设置网络,控制面板>网络和Internet>网络连接,找到刚刚新建的vEthernet。设置ip地址。
在主机的网络中设置共享。网络连接中选择刚才新建的虚拟网卡。
虚拟机设置
添加网络适配器硬件,如果是win7等老的操作系统,只能设置旧版网络适配器,不然无法联网。
虚拟机中设置静态ip地址,前24位网络地址要和之前虚拟网络交换机设置的一样。
……
阅读全文
2021年9月6日
Create Project Create a new node project.
Here is reference of project structure. https://github.com/jan-molak/debugging-typescript-with-webstorm
add package.json, tsconfig.json, and src folder.
tsconfig.json
{ "compilerOptions": { "declaration": true, "target": "es6", "module": "commonjs", "moduleResolution": "node", "noImplicitAny": true, "outDir": "./dist", "preserveConstEnums": true, "removeComments": false, "sourceMap": true, "inlineSources": true, "typeRoots" : ["./node_modules/@types"], "lib": [ "es6" ] }, "include": [ "src/**/*", "test/**/*" ], "exclude": [ "node_modules" ] } package.json
{ "name": "test", "version": "1.0.0", "description": "", "main": ".……
阅读全文
2021年9月6日
express.js with typescript reference: https://github.com/microsoft/TypeScript-Node-Starter
First, initialize the project
install packages
npm install express
npm install @types/express --save-dev
If you meet a problem, TypeError: (0 , express_1.default) is not a function.
add “esModuleInterop”: true to compilerOptions in tsconfig.json
TS1259: Module '"F:/test/project/express-ts/node_modules/@types/express/index"' can only be default-imported using the 'esModuleInterop' flag
https://stackoverflow.com/a/34520891 import express = require(‘express’) import express from ‘express’;
……
阅读全文
2021年8月27日
浏览github的时候,到了晚上不登录的话就会是黑夜模式。时间久了对眼睛不好,所以想调整成不要变成黑夜模式。目前用了一个不是很直接的办法,修改了firefox的设置。
按照下面链接的方法。
https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#view_media_rules_for_prefers-color-scheme
输入地址栏中about:config,设置privacy.resistFingerprinting为true。
……
阅读全文
2021年6月13日
用sharelist挂载onedrive sharelist地址:https://github.com/reruin/sharelist
首先安装sharelist。使用docker比较方便。按照文档上面一条命令。https://reruin.github.io/sharelist/docs/#/zh-cn/
docker run -d -v /etc/sharelist:/sharelist/cache -p 33001:33001 --name="sharelist" reruin/sharelist 初始化的步骤也是按照文档。https://reruin.github.io/sharelist/docs/#/zh-cn/initialize
分别输入口令,标题和虚拟路径。
挂载onedrive 设置微软帐号 登录https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview
找到App registrations
新注册一个App。
填写名字和重定向的域名,比如https://list.yourdomainname.com
由于微软的新的安全策略,无HTTPS的网站无法直接被指定为回调地址,因此回调地址可使用中转地址:https://reruin.github.io/redirect/onedrive.html
记录Application (client) ID 和 Client credentials里面的value。一定要保存下来,之后就看不到secret id了。
具体情况如下图:
app id:
secret id:
设置sharelist 如果要挂载onedrive,选择OD API版,留空(只输入/),然后会跳转到挂载向导。
如果已经挂载过其他目录,可以回到列表页面刷新,能看到多个文件夹,选中要挂载的那个文件夹,就会到向导页面。
在向导中填入之前获得的app id和secret id即可。
……
阅读全文
2020年12月3日
https://www.gnu.org/software/stow/
stow 可以在你设置的目录下自动创建链接到相对应的目录
mkdir dotfiles #创建目录 stow --dir=/root/dotfiles #设置路径 以.bashrc为例
mv ~/.bashrc ~/dotfiles/bash/.bashrc stow bash 建立的对应目录的位置应该在自己名字的文件夹下面,路径位置跟$HOME的相对路径一样
/root/dotfiles/bash/.bashrc /root/.bashrc tree -a . ├── bash └── .bashrc ……
阅读全文
2020年11月23日
d = new Date('2000-01-01') output: Fri Dec 31 1999 19:00:00 GMT-0500 (Eastern Standard Time) d.getYear() 99 d.getMonth() 11 d.getDate() 31 因为时区的问题,显示的时间会跟要存储的时间差一天
加上具体时间" 00:00:00.000",直接生成的是当地时间。
d.getYear() 100 d.getMonth() 0 d.getDate() 1 d.getFullYear() 2000 ……
阅读全文