node服务器

安装好node.js(傻瓜式安装 14. x)
cmd 输入 node -v 有版本号,安装成功

  1. 桌面上新建一个文件夹 node_server_demo

  2. 终端 cd 到 新建的文件夹中

  3. 通过 npm init 指令, 将 普通文件夹 node_server_demo,
    做成 项目文件夹, 此时 会在文件夹中生成一个
    package.json 文件

  4. 将 改文件夹 拖拽到 vs code中, 打开, 开始写代码

  5. 在文件夹 node_server_demo 中新建 index.js 文件

  6. 在 index.js 文件中 , 开始写 服务器代码

题外话: npm 市场, 镜像 是国外, 所有有点慢
我们需要另外一个指令: cnpm
进行 是 过内容

cnpm安装办法: 百度 https://www.cnblogs.com/liaojie970/p/9296177.html

  1. 安装 服务器模块 koa
    cnpm install koa --save
    –save: 安装模块的同时, 是否将模块的依赖关系保存到
    package.json文件中

  2. 用 koa 来搭建服务器
    在 node_modules 模块文件夹中, 找到 koa
    查看 koa 模块的 readme 文件, 里面有 代码说明

  3. 代码 写完之后 , 运行项目:
    node index.js --------完事, 服务器成功了

    停止服务器的快捷键: ctr + C

    尽量在服务器代码中, 增加一个打印, 告诉用户, 服务器跑起来了。。。

https://nodejs.org/en/
下载node

让服务器具有 路由功能

  1. 安装 koa-router 路由模块
    cnpm install koa-router --save

  2. 抄代码
    不在 readme 中,
    在 koa-router / lib / router.js 文件中
    对 抄过来的代码进行简单的修改
    重要的:
    const Router = require(’@koa/router’);
    需要修改成下面的引入方式
    const Router = require(‘koa-router’);
    不同路由接口的示例代码:

     router.get('/abc', (ctx, next) => {
     		ctx.body = "服务器 的abc界面"
     });	
    
  3. 停止服务器 , 重新运行

让服务器具有 静态资源访问能力

  1. 安装 koa-static 模块
    cnpm install koa-static --save
  2. readme 抄代码
    const serve = require(‘koa-static’);
    // __dirname: 整个项目的根路径
    app.use(serve(__dirname + ‘/static’));
  3. 停止服务器 , 重新运行
    http://localhost:3000/111.txt

让服务器 具有 文件上传能力

  1. 安装 koa-body 模块
    cnpm install koa-body --save
  2. readme 抄代码
    const koaBody = require(‘koa-body’);
    app.use(koaBody({
    multipart: true,
    formidable: {
    maxFieldsSize: 1024 * 1024 * 10
    }
    }));
  3. 准备一个网页界面, 写出 文件上传的功能

const fs = require(‘fs’);

  1. 服务器 提供 文件上传的接口 /upload
    router.post(’/upload’, (ctx, next) => {
    var xxx = ctx.request.files

     	var file_path = xxx.sx.path
     	var r = fs.createReadStream(file_path)
     	var w = fs.createWriteStream("./static/diao.jpg")
     	r.pipe(w)
    
     	ctx.body = "9999999"
    

    });

  2. 服务器 完成接收到的上传的文件, 并执行 保存功能

  3. 停止服务器 , 重新运行

异步请求ajax

<script type="text/javascript">
		
		//query查找 根据class或者id进行锁定元素
		var btn = document.querySelector(".btn");
		
		btn.onclick =function(){
		
				var req = new XMLHttpRequest();
				req.open("get", "http://localhost:3000/test" , true)
				req.send()
				req.onreadystatechange = function(){
					if(req.readyState == 4 &&req.status==200){
						
						//这一步忘记了,打印在控制台
						
						console.log(req.responseText)
						
					}
					
				}
			
			
		}
		
		
		
	</script>

加请求头的异步请求:
用到了跨域,承诺,nodejs的异步

contact request = ‘request’ ;

router.get('/abc', async(ctx, next) => {
    var kuwo = "http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key=%E5%91%A8%E6%9D%B0%E4%BC%A6&pn=1&rn=30&httpsStatus=1&reqId=c7d7dbd1-e09a-11eb-a771-8544d2baeb57"
    var tou = {
        "Cookie": "_ga=GA1.2.961517434.1625790913; _gid=GA1.2.2055520088.1625790913; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1625790913,1625792490,1625824054; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1625824054; _gat=1; kw_token=XYIZCHNKQST",
        "csrf": "XYIZCHNKQST",
        "Host": "www.kuwo.cn",
        "Referer": "http://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6",
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    var a = new Promise(function(aaa, bbb) {
        request.get({
                url: kuwo,
                headers: tou
            },
            function(err, res, body) {
                if (err) {
                    bbb(err)
                } else {
                    aaa(body)
                }
            })
    })
    ctx.body = await a
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PY_XAT_SFZL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值