一般来说每个页面上面都有一个返回按钮,用来返回上一页,代码如下: 上面的代码其实就可以满足我们返回上一页面的需求...,但是如果我们是从别的地方打开此链接的时候事实上是没有上一页的,为了提升用户的体验,我们可以使用js来控制当我们点击返回按钮时所进行的操作,关键代码如下: if (document.referrer =...== '') { $('.jsBack').attr('href', '/'); } 上面的意思是当我们点击的时候进行判断,如果document.referrer为空字符串,它就会返回首页,这样对用户的体验来说也比较好...referrer:referrer 属性可返回载入当前文档的文档的 URL,其实就是上一个页面。
背景 在JS中并没有原生枚举的实现,可以通过下面几种方法来模拟类似的操作。...使用数字 这也是老生常谈的内容了,好多语言在没有枚举类型的时候都喜欢这么干: const Days = Object.freeze({ Mon: 0, Tue: 1, Wed:...,我们可以达到必须让别人使用我们定义的变量这一目的。...JS定义枚举集合时的优化 可以尝试下列几种方法,只需要写出来枚举的名字,通过几个数组的API进行赋值操作。 但是由于是动态执行的,效率相对来说会降低,不过这通常是不足一提的。...'] .map((item, index) => ({ [item]: index })) .reduce((pre, cur) => ({ ...pre, ...cur })) 上面使用展开运算符的操作都可以用
正则表达式的创建 在 JavaScript 中,可以通过两种方式创建一个正则表达式。...方式一:通过调用RegExp对象的构造函数创建 var regexp = new RegExp(/123/); console.log(regexp); 方式二:利用字面量创建 正则表达式 var...var rg = /123/; console.log(rg.test(123));//匹配字符中是否出现123 出现结果为true console.log(rg.test('abc'));//匹配字符中是否出现
①、用户在第一次登录某个网站时,要输入用户名密码,如果觉得很麻烦,下次登录时不想输入了,那么就在第一次登录时将登录信息存放在 cookie 中。...,我们可以通过读取 cookie 中的信息,恢复购物车中的物品。...PS:实际操作中,这种方法很少用了,基本上都是将这些信息存储在数据库中。然后通过查询数据库的信息来恢复购物车里的物品 ③、页面之间的传值。在实际开发中,我们往往会通过一个页面跳转到另外一个页面。...后端服务器我们可以通过数据库,session 等来传递页面所需要的值。但是在浏览器端,我们可以将数据保存在 cookie 中,然后在另外页面再去获取 cookie 中的数据。...PS:这里要注意 cookie 的时效性,不然会造成获取 cookie 中数据的混乱。 3、怎么使用 cookie?
2017-08-09 02:46:18 在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。...Javascrip中每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。...可以通过下面的例子来看一下arguments的具体使用方法 function test(){ if(arguments.length>0){ for(p of arguments){ console.log...,当需要使用递归来处理问题时callee就派上了用场 function count(a){ if(a==1){ return 1; } return a + arguments.callee...(--a);//此处的调用亦可使用cont(--a)的方式 } var mm = count(10); console.log(mm);//输出结果为55
⚠ 水文警告 使用 Git 版本控制系统,在提交变更时,使用 Emoji 符号能使提交信息更加生动整洁,且能达到类似于标签的作用,将提交信息进行归类,便于协作。...:bulb: 在源代码中添加或更新注释。 :beers: 醉酒写代码。 :speech_balloon: 添加或更新文本和文字。 :card_file_box: 执行与数据库相关的更改。...JetBrains 系列 IDE 插件推荐 Gitmoji Plus: Commit Button:用于在提交信息中插入 Emoji 标签符号的快捷插件。...Git Commit Template:用于以预定的格式填充提交信息。...参考链接 https://gitmoji.dev/ ---- 内容声明 标题: Emoji 表情符号在 Git 提交信息中的使用 链接: https://zixizixi.cn/git-commit-emoji
这就是为什么我认为分享这些简单的技巧是非常重要的,这些技巧可以帮助我们避免过多的使用 if 语句。...接下来会介绍6种方式来代替 if 的使用,这样做不是坚决不使用 if 偏执狂,而是换个方式思考我们的编码思路。 1....4.非分支策略 此技巧尝试避免使用switch语句,相反是用键/值创建一个映射并使用一个函数访问作为参数传递的键的值。...", })[breed]||'Im the default'; dogSwitch("border xxx") 5.作为数据的函数 我们知道在JS中函数是第一个类,所以使用它我们可以把代码分割成一个函数对象...OOP中多态性最常见的用法是使用父类引用来引用子类对象。
在本教程中,我们将学习如何使用 JS 进行AJAX调用。 1.AJAX 术语AJAX 表示 异步的 JavaScript 和 XML。 AJAX 在 JS 中用于发出异步网络请求来获取资源。...来自服务器的响应存储在responseText变量中,该变量使用JSON.parse()转换为JavaScript 对象。...我们需要另外使用setRequestHeader设置请求标头“Content-Type” ,并使用send方法中的JSON.stringify将JSON正文作为字符串发送。...如果存在网络错误,则将拒绝,这会在.catch()块中处理。 如果来自服务器的响应带有任何状态码(如200、404、500),则promise将被解析。响应对象可以在.then()块中处理。...将响应代码(例如404、500)视为可以在catch()块中处理的错误,因此我们无需显式处理这些错误。
答案是明确的,因为 ECMAScript Modules 在 Node.js 规范中的实现与使用,实际上与现今 Babel/TypeScript 的使用是有较大的区别的。...而 Node.js 12 的这个 Feature,则对 ECMAScript Modules 的开发与使用做了强约束,所以在正式开始使用该规范前,我们还是需要对其有一定的了解的。...在 Node.js 的实现中,ES Modules 实际上与 CommonJS 的规范在部分细节上已有了较大的区别。...,从而使得在代码中可以使用 require/exports 等方式实现模块化。...在 MDN 的文档中,解释如下: import.meta是一个给JavaScript模块暴露特定上下文的元数据属性的对象。它包含了这个模块的信息,比如说这个模块的URL。
使用node-redis 1....操作字符串类型的数据 // 删除所有数据 client.flushall(); // 设置数据 client.set('username', '李四'); // 设置过期 5 秒 client.set...操作集合类型的数据 // 删除所有的数据 client.flushall(); // 添加一条数据到集合中 client.sadd('userlist','张三'); client.sadd('userlist...); return; }; console.log(resutl); // ['李四','张三'] }); // 同时添加多条数据到集合中 client.sadd('...发布/订阅的使用 广播服务 var redis = require("redis"); var client = redis.createClient(6379, '127.0.0.1'); //
上一节讲解了迭代器的使用,如果对迭代器还不够了解的可以在回顾下《从理解到实现轻松掌握 ES6 中的迭代器》,目前在 JavaScript 中还没有被默认设定 [Symbol.asyncIterator...本文也是探索异步迭代器在 Node.js 中的都有哪些使用场景,欢迎留言探讨。...异步迭代器与 Writeable 在 MongoDB 中使用 asyncIterator MongoDB 中的 cursor MongoDB 异步迭代器实现源码分析 使用 for await...of...Stream 中使用 asyncIterator Node.js Stream 模块的可读流对象在 v10.0.0 版本试验性的支持了 [Symbol.asyncIterator] 属性,可以使用 for...在 MongoDB 中使用 asyncIterator 除了上面我们讲解的 Node.js 官方提供的几个模块之外,在 MongoDB 中也是支持异步迭代的,不过介绍这点的点资料很少,MongoDB 是通过一个游标的概念来实现的
js自带函数和jquery中的append方法相似 insertAdjacentHTML是一个非常酷的DOM方法,我们可以调用任何DOM元素来向页面添加新内容。...这是插入新内容的一种很方便且灵活的方法。 对元素调用该方法并接受两个参数:位置和包含HTML的字符串。...这代表我们将HTML添加到容器中的位置。...我们有四种选项可以设置它的位置: beforebegin 在元素之前 afterbegin 在元素的第一个子元素之后 beforeend 在元素的最后一个子元素之后 afterend 在元素之后 下面的示例代码展示了...,向列表中添加了一项: document.querySelector('ul').insertAdjacentHTML('beforeend', 'item')
关于JSubFinder JSubFinder是一款基于Golang开发的敏感信息搜索工具,根据给定的URL地址,广大研究人员可以轻松使用JSubFinder来寻找目标网站页面&JavaScript...中隐藏的子域名和敏感信息。...string 输出文件的存储路径及文件名 -s, --secrets 检测结果中的敏感信息,例如API密钥等 --sig string...URL页面; -s:启用JSubFinder 的敏感信息搜索功能; -S:不向控制台终端打印数据; -o:将输出结果保存到指定文件; -t:使用10个线程; -g:搜索每个URL中的JavaScript...--secrets 检测结果中的敏感信息,例如API密钥等 --sig string 设置敏感数据的签名位置 -S, --silent
但我们可以在Node.js中直接运行TypeScript文件而无需任何编译步骤,这称为加载器(Loaders)。...您可以在官方文档中了解有关此功能的更多信息,包括使用转换示例。TSXTSX是我们的ts-node的最新和最改进版本,它使用ESBuild快速将TS文件转译为JS。...最有趣的部分是,TSX被开发为Node的完整替代品,因此您实际上可以将TSX用作TypeScript REPL,只需使用npm i -g tsx全局安装它,在终端中运行tsx,然后就可以原生地编写TSX...TSX作为加载器通过加载器运行一个文件(或所有文件)很简单,只需在package.json中创建一个启动脚本,并使用以下内容:"scripts": { "start": "node --loader...使用TSX作为加载器不允许将其与其他选项一起使用,例如观察模式。扩展功能自Node 20.6版本以来,我们可以直接加载.env文件中存在的环境配置文件。但如何同时使用加载器和配置文件呢?
在下面的例子中,我将创建一个商店客户的表,表中存储了ID和每个商店的客户信息。...对于类型化的列,我使用的id为5678.注意,这次不再需要在属性名称前加上命名空间的前缀了,只需要在元素名字前引用就足够了。...在Listing16中,我指定了[1]在Xquery表达式的后面,所以结果集将只返回第一个人的名字。...除了在表达式中定义你的XQuery表达式,你也能聚合的功能来进一步定义你的查询和操作数据。...总结 我们基本上了解了XML在SQLServer 中的简单应用,从定义到使用方法。也看到了query()检索子集,也能使用value()检索独立的元素属性的值。
yum install -y iptables && yum install -y iptables-services
方法一:使用service查询到的结果存储在request域中 private void selectAllUsers(HttpServletRequest request, HttpServletResponse...service查询到的结果存储在自定义的类中然后返回给前端 public PageResult> queryByProjectName(Integer pageNo...private int pageSize; //当前页的数量 private int size; //由于startRow 和endRow 不常用,这里说个具体的用法 //可以在页面中"显示...//是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false;...中的使用 对于上边的方法一:前端的页面中可以直接从request域中获取相对应的结果。
://localhost:27017/test 根目录下 app.js 下引入 dotenv 并使用 require('dotenv').config({ path: '.env' }) // 使用...在nestjs中使用环境变量, 推荐使用官方提供的@nestjs/config,开箱即用: @nestjs/config依赖于dotenv,可以通过key=value形式配置环境变量,项目会默认加载根目录下的....env文件,我们只需在app.module.ts中引入ConfigModule,使用ConfigModule.forRoot()方法即可,然后ConfigService读取相关的配置变量。...数据库端口 DB_PORT=3306 // 数据库登录名 DB_USER=root // 数据库登录密码 DB_PASSWD=root // 数据库名字 DB_DATABASE=blog .env.prod中的是上线要用的数据库信息...直接调用configService的get方法,get方法第一个参数是环境变量属性,第二个参数为默认值。 以上便是在nestjs中使用dotenv的方法,希望对你有所帮助。
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 1.如果mapper接口里参数是两个普通参数;如下图 public List...where sname like concat(concat("%",#{1}),"%") LIMIT #{0} ,5 那么xml里只能用#{0},#{1}的方式...,但这样的表达方法,不利于后期的维护。...可以用@Param的注解来修饰参数。xml里看起来也比较方便,否则一堆0,1,2,3的真是难懂。...student where sname like concat(concat("%",#{st.sname}),"%") LIMIT #{page} ,5 3.如果传入的参数只有一个
领取专属 10元无门槛券
手把手带您无忧上云