node.js知识点总结

一般情况下,如果本地网站可以被自己的电脑访问,就也可以被同一局域网内的其他电脑访问。
本地电脑的访问方式:

  • localhost
  • 127.0.0.1
  • 192.168.1.xxx (本地电脑的局域网 IP)
  • xx.com (域名)

其他电脑访问我的电脑主机中的网站的方式:

  • 192.168.1.122
  • xx.com

什么是error-first回调模式

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

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

如何避免回调地域

  • 模块化设计:将回调拆分成几个独立的函数
  • 组合使用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攻击

为了防止攻击,你需要对HTTP header里的set-cookie进行处理:

  • HttpOnly-这个属性帮助防止跨站脚本攻击,它禁止通过js访问cookie
  • secure-这个属性告诉浏览器,仅允许通过HTTPS协议访问cookie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值