JS笔记

  这周学习的主要内容是包括Nodejs、Es6、koa、Ajax等的基础知识,在学习的时候我是边看视频边做写代码,对于很多的知识点还是没有掌握,觉得好像只是目前知道有个什么东西,真正应用的可能会更差。


那我就这周我理解了的知识点做一下总结。

Nodejs

Node.js是一个基于ChromeV8引擎的JavaScript运行环境。
是让JavaScript 运行在服务端的开发平台。

服务器的搭建

最先是引入HTTP协议

const http=require('http');

再利用createServer函数搭建服务器和监听端口

var server=http.createServer(function(req,res){
 });//req是请求 res是回应
 server.listen(8081);
关于GET和POST数据的获取

GET请求被镶在路径中,那么我们获取他可以利用urlLib
get

const urlLib=require('url');//先引入
var obj=urlLib.parse(req.url,true);//用来更加标准化数据
var url=obj.pathname; //pathname属性由URL的整个路径部分组成
 const GET=obj.query;

post

var str='';//因为POST是分布传输
    req.on('data',function(data){
      str+=data;
    })
    req.on('end',function(){
      const POST=querystring.parse(str);
         console.log(url,GET,POST);
关于fs

1、关于文件的请求

const fs=require('fs');//引入fs
var file_name='./www'+url;
    fs.readFile(file_name,function(err,data){
      if(err){
        res.write('404');
      }
      else
      {
        res.write(data);
      }
      res.end();
    })

2、fs中一些方法的使用
stat 检测是目录还是文件

fs.stat('文件地址',(err,data)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log(`是文件 : ${data.isFile()}`);
    console.log(`是目录 : ${data.isDirectory()}`);
})

mkdir创建目录

fs.mkdir('文件地址',(err)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log('创建成功');

writeFile创建写入文件

fs.writeFile('文件地址','写入的内容',(err)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log('写入成功');

appendFile追加文件

fs.appendFile('文件地址','写入文件的代码',(err)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log('appendFile写入成功');

readFile读取文件

fs.readFile('文件地址',(err,data)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log(data);
    console.log(data.toString());//**buffer转string**
})

rename重命名文件&移动文件

fs.rename('./css/index.css','./html/index.css',(err)=>{

    if(err)
    {
        console.log(err);
        return;
    }
    console.log('移动文件成功');

rmdir删除目录 unlink删除文件

fs.unlink('./aaa/index.html',(err)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log('删除目录成功');
}) */
fs.rmdir('./aaa',(err)=>{
    if(err)
    {
        console.log(err);
        return;
    }
    console.log('删除目录成功');
})

ES6的基础语法

let和const

var的缺点:

  1. 可重复声明
  2. 函数级作用域

let和const都是块级作用域(就是在{}里边起作用),const是声明常量

解构函数

注意:

  1. 两边的结构必须是一样的
  2. 右边必须是一个合法的东西
  3. 赋值解构必须同时进行
箭头函数

注意点:

  1. 若只有一个参数()可以不写
  2. 若只有一个语句并且是return{}也可不写
  3. 可以起到修正this的作用

koa

cnpm install --save koa//安装koa框架
query与 querystring

query:返回的是格式化好的参数对象。 querystring:返回的是请求字符串。
Async 、Await和Promise 的使用

async 是让方法变成异步。
await 是等待异步方法执行完成。

async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。

Koa 路由
路由就是根据不同的 URL 地址,加载不同的页面实现不同的功能。

const Koa = require('koa');
const router = require('koa-router')();  
const app = new Koa();
router.get('/', function (ctx, next) { ctx.body="Hello koa"; }) 
app.use(router.routes()); //作用:启动路由 app.use(router.allowedMethods()); 
 app.listen(3000,()=>
 { console.log('starting at port 3000');
  });

上面是koa给我的大概的感觉,剩下东西都是在这个大体的框架上进行补充

koa的动态路由
router.get('/product/:aid',
async (ctx)=>{ console.log(ctx.params);
 //{ aid: '123' } //获取动态路由的数据 ctx.body='这是商品页面'; })

就是在地址的就面加上:aid就能实现

中间件

是匹配路由之前或者匹配路由完成做的一系列的操作
分类

  1. 应用级中间件
  2. 路由级中间件
  3. 错误处理中间件
  4. 第三方中间件
koa中的art-template 模板引擎
npm install --save art-template 
npm install --save koa-art-template
const Koa = require('koa'); 
const render = require('koa-art-template');
const app = new Koa(); 
render(app, { root: path.join(__dirname, 'view'), //视图的位置
extname: '.art', //后缀名
debug: process.env.NODE_ENV !== 'production' });//是否开启调试模式 
app.use(async function (ctx){ await ctx.render('user');
  });
 app.listen(3000);

art-template 模板引擎语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值