植物百科网
当前位置: 首页 农业百科

js数据库操作(js连接数据库代码)

时间:2023-07-09 作者: 小编 阅读量: 1 栏目名: 农业百科

catch部分很容易:运行某些代码并捕获异常,以便它们得到适当处理。根据类型不同,异步工作可能完全作为事件或者可能利用线程池。当该事件发生时,所有监听器被添加到回调对象,并将尽快被调用。为了让回调正常工作,JavaScript中的函数需要重要的功能:它们需要是第一类对象,并需要关闭。Node.js7.6版本升级到8版本,其中引入了被称为异步函数的异步处理新方法。对于JavaScript来说,异步函数是重要变革,但promise以及异步处理仍然很重要。

与数据库交互看起来是一个很简单的事情,但由于Node.js的异步性质使得这一切并不是那么简单。通过Node.js编写异步代码有很多选择,每个都需要进行不同编码。在本系列中,我们将提供一些示例来说明如何利用各种异步模式获取、使用和关闭连接。在这篇文章中,我们将探讨异步编程与传统编程的区别。

try…catch…finally

JavaScript有一个try…catch…finally语句,try…catch部分很容易:运行某些代码并捕获异常,以便它们得到适当处理。但为什么我们需要finally?finally提供了一种允许你运行代码清理的方法,无论异常在try还是catch块中。清理代码通常包括关闭文件处理和数据库链接。

下面是例子:

如果你在浏览器控制台(或者Node.js)中运行,你会在控制到看到类似内容:

请注意catch块中引发的bar异常最终会作为未处理的异常,但在finally块执行之前不会起作用。

如果我们在Node.js中运行的所有代码都是异步,我们可以这样做:

不幸的是,try…catch…finally对于异步代码并不是非常有用—至少在异步函数可用之前,原因与Node.js中异步工作原理有关。

异步/事件处理

下面让我们看看异步操作如何执行,例如执行HTTP请求和执行数据库查询。

所有JavaScript代码在主线程运行,异步API从主线程调用并传递回调函数。根据类型不同,异步工作可能完全作为事件或者可能利用线程池。当异步工作完成时,回调函数被添加到回调对象,以便尽快在主线程上调用。

对于这种架构,在异步处理期间发生的错误会在完全不同的调用堆栈中带回到主线程。你不能捕捉在不同调用堆栈中引发的错误—为时太晚!

下面是调用异步API的非常简单的演示:

setTimeout(function() {

console.log(‘hello’);

}, 2000);

console.log(‘world’);

如果你在浏览器控制台或Node.js中运行该脚本,则输出是:

world

hello

在hello前两秒看到world会让异步编程新手感到惊讶。这里的秘密是传递到setTimeout的回调函数,它会“回调”,或者当指定时间过去时在主线程执行。

回调函数可追溯到JavaScript的开始,JavaScript被设计为将生活带到网络的语言。JavaScript开发人员需要将代码与事件关联(例如加载页面、点击鼠标或者按键),随着时间推移,下面这种DOM API被引入:

window.addEventListener(‘load’, function() {

// do some work

});

上面的addEventListener方法将传入的异步函数作为第二个参数,并将其添加到windows元素load event相关的侦听器列表中。当该事件发生时,所有监听器被添加到回调对象,并将尽快被调用。

为了让回调正常工作,JavaScript中的函数需要重要的功能:它们需要是第一类对象,并需要关闭。

函数作为第一类

函数作为第一类对象的概念听起来很复杂。大多数编程语言提供了声明变量和创建命名代码单元的方法,通常被称为函数或过程。这两种结构之间通常有明确的区别,例如,你可以声明变量并将其传递给函数,但你不能将函数传递给函数。

另一方面,JavaScript允许函数可用作更标准数据类型(例如Number、String和Boolean)。函数可以被声明,从函数传递到函数,并可在未来某个时候被调用。函数作为第一类对象是传递函数到另一函数的前提条件。

想象一下,当页面加载以及当用户点击窗口时你想要执行相同的代码,你可以这样做:

window.addEventListener(‘load’, function() {

// do some work

});

window.addEventListener(‘click’, function() {

// do the same work here

});

上面代码的问题在于我们需要维持做相同工作的两个函数。然后,如果知道函数是第一类对象,我们可声明单一的命名函数,并根据需要传递引用。

function doWork() {

// do some work

}

window.addEventListener(‘load’, doWork);

window.addEventListener(‘click’, doWork);

你可以看到,函数作为第一类对象是简单而强大的JavaScript功能。

函数提供闭合

闭合的概念可能有点难理解,但它对异步/事件编程来说至关重要。简单来说,闭合是指在其封闭范围定义的变量的函数。

很多语言允许开发人员在函数中嵌套函数,子函数可引用父函数范围中声明的变量。使用其他语言的开发人员可能永远不会想到,如果在父函数完成执行后运行时调用子函数会发生什么?这根本不可能,但JavaScript并非如此!

请记住,JavaScript中的函数是第一类对象,所以与分配给变量的任何其他值一样,它们可通过传递来逃避其父函数的限制。当发生这种情况时,原始封闭范围(词汇范围)内对变量的引用仍将存在。那么,在以后调用子函数时应该怎么办?

闭合确保子函数能够访问这些变量,只要运行时可能需要调用子函数。这些变量不会像平常那样作为垃圾回收。

下面是示例:

你可将此代码复制并粘贴到具有.html扩展名的文件中,并在浏览器中打开。你会看到一个按钮写着“点击我”,当窗口加载时,onLoad函数会将onClick函数注册到按钮的click事件。

请注意,onClick不会在onLoad内调用。相反,应用被传递到API,可在未来调用该函数。因为onClick是指onLoad函数中声明的button变量,闭合可确保onClick在未来调用时可访问button。

现在我们已经探讨了JavaScript中异步编程相关的一些核心概念,下面让我们将注意力转移到Node.js中涉及的异步模式。

常见异步模式

目前,通过Node.js编写异步代码最常见(通用)模式是回调、异步模块和promise。Node.js 7.6版本升级到8版本,其中引入了被称为异步函数的异步处理新方法。

异步函数允许Javascript代码异步编写,且可异步执行。最重要的是,异步结构可按照你期望的方式运作。对于JavaScript来说,异步函数是重要变革,但promise以及异步处理仍然很重要。

    推荐阅读
  • 空气含量中最多的气体(空气含量中最多的气体介绍)

    空气中含量最多的气体是氮气,氮气约占空气体积分数的百分比约为78%。通过实验测定,空气的成分按体积计算,氮气大约占78%、氧气占21%、稀有气体0.94%、二氧化碳0.03%、其他气体和杂质0.03%,也就是说空气中含量最多的物质是氮气。氮气化学性质很不活泼,在高温高压及催化剂条件下才能和氢气反应生成氨气;在放电的情况下才能和氧气化合生成一氧化氮;即使Ca、Mg、Sr和Ba等活泼金属也只有在加热的情形下才能与其反应。

  • 文思豆腐羹如何做好吃(文思豆腐羹用什么豆腐)

    文思豆腐是一道有名的淮扬菜,需要的就是精湛的刀工,这样做出的文思豆腐会有嫩滑的口感,打造入口即化的口感。文思豆腐羹如何做好吃文思豆腐羹材料和做法步骤一、文思豆腐羹材料准备好豆腐400克,鸡脯肉,火腿还有香菇,再有准备好生菜,冬笋,调料需要准备盐和味精。

  • 结构性存款可以买理财吗(结构性存款是存款吗)

    雪球产品就是今年年初监管向信托公司进行窗口指导,要求叫停的产品。简单的说,这是一种高风险的金融衍生品,它通过持有一定结构的金融衍生品,来实现在某一特定情况下获利。这样的投资结构就能保证我不论涨,还是跌,只要在一定幅度内都可以盈利。交易期权等金融衍生品,是非常高风险的投资。

  • 正言厉色意思(正言厉色的意思)

    下面内容希望能帮助到你,我们来一起看看吧!正言厉色意思正言厉色,汉语成语,拼音是zhènɡyánlìsè,意思是形容板着脸,神情非常严厉。出自《汉书·王莽传》。宝玉突然想出一个主意,一本正经地给她讲扬州黛山林子洞耗子精偷香芋的故事,黛玉见他正言厉色,以为真有其事,后来才发现原来是在取笑她。

  • 面谈调薪酬有什么技巧(跟老板谈调薪的技巧有哪些)

    如果你在老板心目中分量很大,一般老板都会给你加薪的。和老板谈加薪时目的一定要明确,让老板知道你只是为了加薪,而不是辞职走人。和老板谈加薪后,一定要给老板一个考虑的时间,不要咄咄逼人,逼着老板加薪。老板也要有足够的思考时间,来考虑你是否值得加薪,给你加薪后对公司有没有什么影响。不仅口头上要表示感谢,工作中要更加努力,让老板觉得给你加薪是值得的。

  • 杏花有没有香味(杏花闻起来会特别香吗)

    杏树是中国著名的观赏树木,可配植于庭前、墙隅、道路旁、水边,也可群植、片植于山坡、水畔,是春季主要的观赏树种。杏花直径2至3厘米,先于叶开放。花梗短,长1至3毫米,被短柔毛。花萼紫绿色,萼筒圆筒形,外面基部被短柔毛。萼片卵形至卵状长圆形,先端急尖或圆钝,花后反折。花瓣圆形至倒卵形,白色或带红色,具短爪。

  • 减肥减肚子的方法(怎么减肚子呢)

    减肥减肚子的方法食用健康食品:酸奶与发酵的牛奶能激活消化必须的物质,有助于改善肠道微生物系统,从而防止腹部隆起。走路、喝水、按摩:走路及喝水有利腹部扁平。

  • 新坑翡翠手镯多少钱(新坑翡翠手镯的价格)

    新坑翡翠手镯多少钱?新坑翡翠手镯多少钱翡翠手镯作为大件翡翠制品,用料特别多,只有大块、质量好的翡翠原石才能打造成手镯,因此翡翠手镯的价格都比较高,商家们拿到质量比较好的原石也尽可能打造成手镯。具体到新坑种翡翠,因为大多数新坑种翡翠透明度都不高,质地也不够细腻,因此种水一般都是以糯种或豆种为主,极少出现冰种或冰种以上的种水,这样的翡翠价格价格自然不会太高,一个品质比较好的糯种翡翠手镯大概在十万以内。

  • 宁波毛蚶做法水煮几分钟(毛蚶煮多长时间可以吃)

    宁波毛蚶做法水煮几分钟毛蚬是很多人喜欢吃的食物,不过建议大家在做之前都要先用开水煮以下。强精益气,提高精液质量,增强精子活力。适用于治疗肾阳虚所致的阳痿、腰痛、小便频数及补五脏之气不足。可治疗全身水肿,小便不利等。能软化和保护血管,有降低人体中血脂和胆固醇的作用。

  • 2022洛阳湿地公园最新名单 洛阳生态公园最新消息

    国家级湿地自然保护区河南黄河湿地国家级自然保护区,面积24000公顷。国家级湿地公园嵩县陆浑湖国家湿地公园,面积4222.39公顷伊川伊河国家湿地公园,面积1384.36公顷。