基于Node.js-Express-北京网站制造-Jscex开发的ToDo网站实例

文章编号:5887 更新时间:2024-02-02 分类:互联网资讯 阅读次数:

资讯内容

基于Node.js、Express和Jscex开发的ToDo网站示例

Jscex的重要经常使用场景是JavaScript异步编程,但无论是运转在阅读器端还是主机端都没有限度。Node.js最近很火,Windows原生版本也刚刚颁布。很多同窗会用它来制造一些网站之类的小程序。目前用Node.js开发网站最驰名的框架就是Express,而且比拟好用。前段期间在CNodeJS社区看到一篇文章。有同窗将一个用Python写的ToDo列表网站移植到了Node.js上。为了推行Jscex,我fork了这个名目,修正为基于Jscex的版本。大家可以来对比一下。当然这个站点太便捷了,我也在寻觅更适合的名目。(网站制造)

51CTO介绍话题:Node.js专区

JavaScript是一种非阻塞言语,所以各种API都设计成异步的,无利于服务端的裁减性和客户端网页的照应性,然而在编程中会遇到各种疑问。比如ToDo例子中一个便捷的解决函数,由于须要查问数据库,所以须要写一个回调:

exports.index=(req,res,next){

db.query('select*fromtodoorderbyfinishedasc,idasclimit50',(err,rows){

(err)next(err);

res.render('index',{todos:rows});

db变量用于操作MySQL数据库。它的查问方法传入sql(或者有参数),并提供回调函数来揭示失误或前往查问结果。在回调中,咱们必定判别err能否存在,假设存在,则调用next向框架报告error。每个异步操作都必定是这样的。试想一下,假设在这个查问之后还有一个查问,须要启动嵌套和err判别。每一个解决函数都是如此,这也是异步编程的烦恼之一:很难启动一致的意外解决,解决代码总是须要扩散在各处。一不小心就会变成野外意外,很难排查。

我只是JscexedToDo网站。首先,启用MySQL查问以访问Jscex(libjscex.mysql.js):

alt">

普通来说,将一个异步接口给Jscex化并不须要那么多代码(最关键的其实只是onStart函数)。这里近30行代码,其中大局部是为了允许变长参数,因此queryAsync函数会保管调用时的一切参数,补上一个callback,再去调用query函数自身。此时,便可以去改写之前的index等解决函数了(controllerstodo.js),例如:

toHandler函数的作用,是将一个接受req和res,前往Task的函数,封装成规范的接受req、res和next三个参数的解决函数,并提供一致的错曲解决:

我在todo.js里保管了原有各个解决函数的成功,感兴味的好友可以对比一下它们之前的差异。惋惜的是,由于ToDo真实过于便捷,Jscex的长处并没有体现进去太多。例如,每个解决程序中只要一个MySQL查问,没有判别和循环,更别说为了充沛应用IO并发才干,从而组合多个异步函数了。因此,我最近也不时在寻觅更复杂一些的示例,不过仿佛用Express的开源网站并不多见,我简直都想自己写一个了。目前觉得仿佛还算不错,接上去或者会对它下手。

ToDo网站依赖Express,ejs和MySQL驱动,同时我把Jscex作为减少为它的子模块。假设您要克隆一份ToDo的代码 基于NodejsExpress北京网站把玩一番,可以:

从如今开局,我会在InfoQ中文站上宣布一系列对于Jscex的文章,既无对于阅读器端的JavaScript开发,也有在主机端应用Node.js开发的内容。或者您目前还或者会有所纳闷,例如为什么要经常使用风险的eval函数,eval和Jscex.compile函数不能封装起来吗?其真实看了我的文章并对Jscex有了基本了解之后,就会发现这些都是以传统目光来看待Jscex时所构成的曲解。Jscex的做法确实另辟蹊径,否则在JavaScript异步类库曾经多如牛毛的状况下,我不知如何让它锋芒毕露。(上流网站树立)

咱们专一上流建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发阅历,每一个名目承诺做到满意为止,多一次性对比,必定让您多一份收获!

标签: 北京网站制造Express基于Node.jsJscex开发的ToDo网站实例

本文地址: https://yihaiquanyi.com/article/7bb541992c3d5b991ea8.html

上一篇:这就是你应该吃健康早餐的原因英文这就是你...
下一篇:高性能web服务器高性能Web开发之网络传输链...

发表评论