背景 年底了,换了项目组,新的项目组使用react,从vue到react,我只花了一天的时间,看了官方简单的文章之后,就觉得这玩意很简单啊,比起vue的那么api来说,这根本没有学习成本好吧,十分迅速的就进入了...react的项目开发,并且洋洋得意,根据我多年的经验来看,这波肯定会得到领导的赏识 很快,我就做完了我的需求,把代码提交上去,组长可能确实比较闲,还review了我的代码,并且指出了一系列的问题,并告诉我说学习...react最难的部分,并不是知道怎么使用它,而是要知道怎么能够编写良好,干净的react代码 主要给我提了六点错误,我相信在座的各位,可能需要对号入座 在不需要使用state的时候使用state 涉及到项目中的代码逻辑...count的值是固定的,也就是我们常说的setState是异步的原因(当你更改状态的时候,它不会立刻更新,而是等到下一次render才会更新),并且react会将state进行批处理,但是如果是函数的形式...常见useEffect错误 const [user, setUser] = useState(""); const person = { user } useEffect(() => { console.log
本文以连接错误ECONNREFUSED为例,看看nodejs对错误处理的过程。 假设我们有以下代码 1. const net = require('net'); 2....UV_ECONNRESET: ["ECONNRESET", "connection reset by peer"] 5. ... 6. } Node.js最后会组装这些信息返回给调用方...这就是我们输出的错误信息。那么为什么会是ECONNREFUSED呢?我们看一下操作系统对于该错误码的逻辑。 1. static void tcp_reset(struct sock *sk) 2...处于发送syn包等待ack的时候,如果收到一个fin包,则会设置错误码为ECONNREFUSED。...我们输出的正是这个错误码。
大部分程序员们都不敢保证自己的代码百分比正确,所以应该在写代码时就要对异常提前做预防处理,尽量保证在异常出现时,给用户一个友好的提示,不至于服务挂起导致请求超时,并且能将异常信息做记录上报,方便后期排查解决...然而却没有捕获到异步错误。 2. process的uncaughtException事件 那异步错误该怎么处理呢?...首先换个思维,因为异常并不是事先准备好的,不能控制其到底在哪儿发生,所以站更高的角度,如监听应用进程的错误异常,从而捕获不能预料的错误异常,保证应用不至于奔溃调。...另外在官方文档上,domain模块处理废弃状态,但是现在也没有其他方案可以完全代替domain模块,但是我现在node10的版本依旧可以用,暂时应该不用担心domain模块被废弃的问题。 三....下面是将cluster和domain结合起来使用,以多进程的方式保证服务可用,同时可以将错误信息传递下去进行上报,并且保留错误出现的上下文环境,给用户返回请求,不让用户请求超时,然后在手动杀死异常进程,
大部分程序员们都不敢保证自己的代码百分比正确,所以应该在写代码时就要对异常提前做预防处理,尽量保证在异常出现时,给用户一个友好的提示,不至于服务挂起导致请求超时,并且能将异常信息做记录上报,方便后期排查解决...然而却没有捕获到异步错误。 2. process的uncaughtException事件 那异步错误该怎么处理呢?...首先换个思维,因为异常并不是事先准备好的,不能控制其到底在哪儿发生,所以站更高的角度,如监听应用进程的错误异常,从而捕获不能预料的错误异常,保证应用不至于崩溃。...另外在官方文档上,domain模块处理废弃状态,但是现在也没有其他方案可以完全代替domain模块,但是我现在node10的版本依旧可以用,暂时应该不用担心domain模块被废弃的问题。 三....下面是将cluster和domain结合起来使用,以多进程的方式保证服务可用,同时可以将错误信息传递下去进行上报,并且保留错误出现的上下文环境,给用户返回请求,不让用户请求超时,然后在手动杀死异常进程,
利用cocos creator 3d做了个3d版的羊了个羊,文末“阅读原文”可体验。
全球最大的同性交友网站挂了,让我等技术宅还怎么好好的撸代码呢? 好了,闲篇少扯,说点正事吧。今天我们来介绍程序中用到的几个强大的中间件。...async - 强大的异步功能支持 之前已经简单介绍过,请移步NodeJS异步流程控制简单介绍。为什么要将这个中间件呢,因为当你接触nodejs代码多了之后,难免会受到“回调之痛”。...各种的回调嵌套真的把你给玩坏了。代码看起来就好像多层的if-else嵌套一样。...404后,会给出这样一个错误页面 ?...404 而实际上404跟500是不一样的,500是服务器端程序错误,404是很常见的一种资源不存在的错误,500能避免,但是404是不可避免的,所以我们需要有好的提示给用户一个404页面。
请关注专题:我的NodeJS学习之路(实践之路) 小弟初涉node领域,不足之处,还请多多指教!...欢迎Star、Fork:https://github.com/gefangshuai/ANodeBlog ---- 本文通过搭建一个博客系统,介绍一个小型应用系统系统用到的中间件及其他选型参考,涵盖从框架搭建...文章评论模块 后台管理模块 个人信息修改 文章增删改 其他杂项 登录认证权限控制 Markdown编辑器集成及渲染 Mongodb数据库设计 多说评论框集成及部分API使用 未完待续 请关注专题:我的...NodeJS学习之路(实践之路)
欢迎Star、Fork:https://github.com/gefangshuai/ANodeBlog NodeJS路由规范遵循RESTful 规范,更多有关RESTful的相关知识请参考RESTful...所以我们的路由要针对这两部分用户分别进行设计,我遵循的原则是:普通用户:路由尽量简短明了(可参考简书);管理员用户:直观表达功能 普通用户路由 这里的普通用户路由是指:普通用户就能操作的功能模块...同样,对于管理者的路由,在原来的基础上,都以/dashboard/前缀表示。...(这样划分也是为了后面做权限控制作铺垫的,后面会专门介绍权限控制的相关内容) 在app.js中注册路由: app.use('/dashboard', authority.isAuthenticated,...对于路由的设计,尽量遵循标准规范,这样对于我们的程序,可很好维护控制。
正如官网的介绍,我觉得这货是一个全能的处理日期的中间件。...细心的朋友可以发现,Momentjs也提供了bower的安装包,所以直接可以在前台使用,但是我们并不推荐这样做,把处理放到前台会影响用户的体验。所以我们使用npm包放到后台去处理。...只要你在Gravatar的服务器上上传了你自己的头像,你便可以在其他任何支持Gravatar的博客、论坛等地方使用它。...——转自wikipedia 玩过网站的童靴对这货应该不陌生,我第一次接触是从Wordpress开始的。只需要一个邮件账号,就可以建立你自己的全球公认头像。...s=100&r=x&d=retro 如何在国内正常使用 由于不可抗力,gravatar的服务器已经被墙了…… 我们可以使用多说的服务来加速gravatar的请求。
欢迎Star、Fork:https://github.com/gefangshuai/ANodeBlog ---- 整个工程结构已经有了,下面来说一下几个简单但重要的配置: 定义一个简单的配置文件,...存放项目配置信息 一个完整的项目中,会有各种配置信息,如何组织这些信息,会给我们后期的维护成本带来不同的影响。...为了更好的维护项目,我习惯定义一个配置文件来专门组织这些信息,我们可以命名为config.js,放到项目根目录下,直观表现。...需要有一个统一的管理,我称之为filter。将这个filter定义在所有的请求之上。node执行顺序是从上往下,所以每个请求在页面上都会拿到这些参数。...新建好的工程默认使用的是hbs,相似的还有express-handlebars、express-hbs,三者除了用法,功能上没有太大的区别,都是针对Handlebars后台模版引擎的一个封装,选择哪个,
欢迎Star、Fork:https://github.com/gefangshuai/ANodeBlog 本文来介绍系统中用到的权限认证的知识。 首先简单介绍一下passportjs。...Passport做登录验证具有:灵活性、模块化、丰富的中间件等特点,更加详细的介绍请参考:http://idlelife.org/archives/808 如何在项目中使用passport?...username:需要验证的“用户名” password:需要验证的“密码” done: 对验证结果的处理方法 username和password默认对应表单的name="username"和name...做登录处理 在处理登陆请求的路由中,加入登录处理的配置信息,然后passport会自动帮你处理是否登录成功(有点类似shiro)。...success_callback:验证成功后做的处理,可以是登录成功后的跳转等等。 4.
本爷工作中常常以错误零容忍自居,对团队的错误"颐指气使",想来也是让人极为厌恶的。人非圣贤,高人亦如此,何况吾凡辈。有些错误换个角度反而是一种美,那我们就从递台阶开始吧。...不过这个锅到底是不是老李的,历史过于悠久,搜遍Google亦无从考证,遂作罢。老李背不动总得有jdk的某个人背。 管杀不管埋,个人觉得,是程序员群体特别容易掉进去的一个错误陷阱。...考完后的阅卷原以为平淡无奇,直到发现有人在编程题里注入了XSS代码,具体的弹窗内容已经不记得了,我只记得他当时错了蛮多题,理应过不了考试,但是我依然给了他过,不只是因为有趣还因为作为小鲜肉程序员有如此的知识厚度很难得...此时的我并不想拿规范考试束缚他。 恩,足够牛逼的人走到哪里都会有特权,就是这么回事。...笑话一则: 当年Linux之父Linus说:上帝在梦中告诉我,我做出了最优秀的操作系统。 高德纳回答说:我可没这么说过。
很多人其实不是很重视错误处理,但对于构建一个健壮的nodejs应用,错误处理是非常重要的一件事情,希望本文可以给你一些启发。 先抛出几个问题: 应该用哪种方式暴露错误?...(err) { if (err) throw (err); // 直接throw if (err) callback(err); // 使用callback,nodejs中常见的异步处理方式...例如nodejs应用因为一个变量undefined导致crash,这是编码错误,客户端则会接收到ECONNRESET错误,这属于操作错误,对于客户端来说应该可以预期到服务器的这个错误。...对于预料之外你不知道如何处理的错误,比较好的方式是记录error并crash,传递合适的错误信息给客户端。 如何处理 代码错误 最好的方式是立即crash。...一般来说,在nodejs中,同步函数导致的操作错误是比较少见的,使用try...catch会很少,常见的是用户输入验证如JSON、解析等。 一个函数的参数、类型、预期错误、如何捕获都应该是明确的。
很多人其实不是很重视错误处理,但对于构建一个健壮的nodejs应用,错误处理是非常重要的一件事情,希望本文可以给你一些启发。 先抛出几个问题: 应该用哪种方式暴露错误?...例如nodejs应用因为一个变量undefined导致crash,这是编码错误,客户端则会接收到ECONNRESET错误,这属于操作错误,对于客户端来说应该可以预期到服务器的这个错误。...对于预料之外你不知道如何处理的错误,比较好的方式是记录error并crash,传递合适的错误信息给客户端。 如何处理 代码错误 最好的方式是立即crash。...一般来说,在nodejs中,同步函数导致的操作错误是比较少见的,使用try...catch会很少,常见的是用户输入验证如JSON、解析等。 一个函数的参数、类型、预期错误、如何捕获都应该是明确的。...nodejs之前就已经有操作错误、编码错误的概念,参考这里 https://en.wikipedia.org/wiki/Assertion_(software_development)#Comparison_with_error_handling
很多人其实不是很重视错误处理,但对于构建一个健壮的nodejs应用,错误处理是非常重要的一件事情,希望本文可以给你一些启发。 先抛出几个问题: 应该用哪种方式暴露错误?...例如nodejs应用因为一个变量undefined导致crash,这是编码错误,客户端则会接收到ECONNRESET错误,这属于操作错误,对于客户端来说应该可以预期到服务器的这个错误。...对于预料之外你不知道如何处理的错误,比较好的方式是记录error并crash,传递合适的错误信息给客户端。 如何处理 代码错误 最好的方式是立即crash。...一般来说,在nodejs中,同步函数导致的操作错误是比较少见的,使用try...catch会很少,常见的是用户输入验证如JSON、解析等。 一个函数的参数、类型、预期错误、如何捕获都应该是明确的。...nodejs之前就已经有操作错误、编码错误的概念,参考这里 https://en.wikipedia.org/wiki/Assertion_%28software_development%29#Comparison_with_error_handling
如果没有服务器,推荐买一台云服务器,可以部署自己的项目或者干点别的。 我推荐买国外的DigitalOcean(nodejs社区主推)。这里介绍一下如何购买及使用DigitalOcean。...镜像创建完成,就开始搭建nodejs环境、git环境和mongodb环境。至于linux下怎么搭建环境,网上教程一堆,这里就不再悖述了,有问题的童鞋可以给我留言,我会一一解决!...环境部署好并将自己的代码从github下拉下来后,在ssh客户端链接工具中输入: npm start 但是你会发现,当我们关闭ssh连接工具后,程序就自动退出了!...简单的方法可以参考Linux下使Shell 命令脱离终端在后台运行 这里我介绍另外一个工具forever 教程请参考使用forever在ssh中管理node应用。...现在貌似pm2更流行一些,回头研究一下,分享给大家!
大家好,我是 Rocky0429,一个在划水界鼎鼎有名的蒟蒻... 最近雨下的有点多,导致我划水量有点大,被水淹的有点不知所措,患上了传说中的拖延症性关节炎... ?...这直接导致最近我经常能在后台看到诸如“辣鸡,取关了”、“狗营销号”等溢美之言,不绝于耳... 搞的我有点羞涩,毕竟我这人最受不了别人夸我... ? 所 以 我 决 定 要 做 回 普 通 人! ?...我这人没别的爱好,就是喜欢自虐... 为了改头换面重新做人,在某个夜深风高的夜晚,我扛着我的小锄头,挖出了我压箱底的宝贝,轻轻掸去了一层浮灰... ?...想象一下,本就拖拖拉拉的自己,好不容易忍着写了几百字,突然想玩会手机犒劳一下自己,手机刚拿出来,写的东西没了,你是什么感觉?我想了一下,如果我有钱的话,我直接就把手机砸了... ?...顺便立个 flag,我以后要是再拖延我就抽死我自己,这篇文章写了十几次才写完,换谁也扛不住啊,手指头都要断了... 看在我手指头的份上,怎么也得给个在看安慰一下不是...
这开发者都这么不注意的吗?这谁干的好事啊? 没错,那个开发者就是我。。。...是的,我在我的开源项目 Gerapy 里面写出来了这个漏洞,然后喜提 CVE:https://cve.mitre.org/cgi-bin/cvename.cgi?...Popen 执行了这条命令,并且捕获输出结果和错误,如果没有错误就返回输出结果,如果有错就返回错误。...传入了一个域名,输出了 dig 命令之后域名的解析结果。...而且尤其我作为开源项目的作者,我也有必要好好地处理好安全性问题,不然大家用了我项目,但是出现了问题,我还是难辞其咎的。 以后我会多加注意,谢谢大家的支持。 End
月月 我被网络兼职骗了,怎么办啊,我一个月的生活费? 接下来小助手就带大家见识一下那些专门瞄准学生党的诈骗案例。...小雨准备好接单了,这时任务员才说要交198元的会员激活费才能做任务,小雨很是犹豫,但对方承诺做满7天后退还,又晒出了兼职人员的工资结算单。 小雨很动心,就交了钱。...事实上,腾讯客服根本不会使用QQ个人帐号与用户私下沟通,小伙伴们可别被假李逵给骗了。 骗子连营业执照、身份证都可以伪造,更何况一张伪造的工卡照片?...为了避免更多人被骗,如遇到诈骗分子,请收集好相关证据,在客户端进行举报,举报成立后腾讯平台会对违规帐号进行相应的处罚,防止违规帐号再给其他用户带来不良影响。...青少年网恋又出新招,磕泡泡了解一下 谁动了我的个人信息?
领取专属 10元无门槛券
手把手带您无忧上云