nodeJs知识点总结详解编程语言

什么是error-first回调模式

应用error-first回调模式是为了更好地进行错误和数据的传递,第一个参数保留给一个错误error对象,一旦出错,错误将通过第一个参数error返回,其余的参数将用作数据的传递

   fs.readFile(filePath, function(err, data){ 
      if(err){ 
         return console.log(err) 
      } 
      console.log(data) 
   })

如何避免回调地域

  • 模块化设计:将回调拆分成几个独立的函数
  • 使用流程控制库,比如async
  • 组合使用generators和Promises
  • 使用async/await函数
    可以参考另一篇博文Promise使用动机

Promise

下面代码有什么错误

   new Promise((resolve, reject)=>{ 
       throw new Error('error') 
   }).then(console.log)

没有设置错误处理函数,可以参考另一篇博文详解Promise对象

桩代码

桩代码(stub)就是在某些组件或模块中,模拟某些功能的代码,桩代码的作用是占位,让代码在测试过程中顺利运行
一个例子,它实际的作用是写一个文件,但是这段代码并没有真正做这件事

   var fs = require('fs') 
   var writeFileStub = sinon.stub(fs, 'writeFile', function(path, data, cb){ 
       return cb(null) 
   }) 
   expect (writeFileStub).to.be.called 
   writeFileStub.restore()

测试金字塔

测试金字塔描述了单元测试(unit test),集成测试(integration tests),端到端测试(end-to-end test)在测试中占的比例
举个例子,测试一个HTTP API需要

  • 大量关于models的单元测试(使用桩代码处理)
  • 一些关于models如何和其他models交互的集成测试(未使用桩代码处理)
  • 少量的端到端测试,也就是真实环境下的调用(未使用桩代码处理)

如何保证你的cookie安全,如何阻止XSS攻击

XSS攻击是指攻击者向html页面里插入恶意js代码
为了防止攻击,你需要对HTTP header里的set-cookie进行处理:

  • HttpOnly-这个属性帮助防止跨站脚本攻击,它禁止通过js访问cookie
  • secure-这个属性告诉浏览器,仅允许通过HTTPS协议访问cookie
    所以,你需要做的是在请求头里写Set-Cookie : sid=; HttpOnly。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13494.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论