node搭建ajax服务器环境

前端笔记

搭建服务器

服务器搭建流程

1.node 搭建服务器 和 mySQL
    1. 准备空文件夹
    2. 终端cd到文件夹中
    3. 将该普通文件夹初始化成项目文件件
        npm init
    4. 查看项目中的package.json文件
        创建 index.js 文件
    5. 安装服务器模块koa
        cnpm install koa --save
        (   额外插播一条广告: 你的电脑没有cnpm
            需要在你的电脑上的终端中 安装 cnpm 
            npm install -g cnpm --registry=https://registry.npm.taobao.org
        )
    6. 编写服务器的代码
        粘贴 koa 模块代码
    7. 运行服务器进行测试
        node index.js
    8. 安装路由模块,进行服务器接口编写
        1.cnpm install koa-router --save
        2.粘贴路由代码  // 代码在lib/router.js 中 example basic use下 即30-41行
        3.修改代码 const Router = require('koa-router');
    9. 安装参数解析模块
        1.cnpm install koa-bodyparser --save
        2.粘贴代码 37 40 行
        3.GET 参数 ctx.request.query
        4.POST 参数 ctx.request.body
            (post接口测试需要写ajax 代码,
            也可以安装postMan来进行测试)
    10. 将服务器开发访问权限
        1.安装 跨域模块 cnpm install koa-cors --save
        2.粘贴代码 19 22
            var cors = require('koa-cors');
            app.use(cors());
    11. 让服务器具有文件访问的能力
        1.安装静态资源模块 cnpm install koa-static --save
        2.在项目中创建 static 文件夹
        3.粘贴代码 43 54 
            const serve = require('koa-static');
            app.use(serve(__ dirname + ' /static/'));
        4.访问路径测试(不用带上static 这个路径)
            http://localhost :3000/111. jpg
    12. 让服务器具有访问数据库mysql的能力
        1.安装 mysql 模块 cnpm install mysql --save
        2.粘贴代码
            在路由外边
            var mysql = require('mysql');
            var db = mysql.createConnection({
                host: 'localhost',
                user: 'root',
                password: '',
                database : 'leifeng'
            });
            db.connect();

            在接口 /aaa 中
            db.query("sql语句",function (err,data,fields) {
                data ---> [数据库类型的数据,是不可以直接使用的]
                data = JSON.stringify(data)
                data = JSON.parse(data)

                [对象,对象] ---> 可以直接使用

                console.log(data)
            })
    13. Promise承诺写法
        1.var prom = new Promise(function (you_jieguo,mei_jieguo) {
            db.query("sql语句",function (err,data) {
                if (err) {
                    mei_jieguo(err)
                } elset
                    data = JSON. stringify(data)
                    you_jieguo(data)
                }
            })
        })
        2.ctx.body = await prom;
        3.给接口增加async
            '/get_ user', async (ctx, next)
    14. 给服务器安装文件模块
        1. cnpm install koa-body --save 
        2.贴代码 
            //文件上传模块
            const koa_body = require("koa-body")
            app.use(koa_body({
                multipart: true,
                formidable: {
                    maxFileSize: 1024 * 1024 * 200
                }
            }))
        3.在文件上传接口中编写上传并保存文件的代码
            router.post( " /upload', (ctx, next) => {
                // GET: ctx.request.query 
                // POST: ctx.request.body
                // FILE: ctx.request.files 
                var file = ctx.request.files.xxx
                var file_name = file.name
                var file_name_arr = file_name.split(".")
                var file_type = file_name_arr[file_ name_arr.length - 1]
                var file_path = file.path

                // file_path stream ---->  /static/imgs/sb.jpg
                // 1.导入文件操作系统(fileSystem 简称fs)
                    // require("fs")
                // 2.利用文件操作系统将 path 中的数据流读出来
                    var read_stream = fs.createReadStream(file_path)
                // 3.准备一个数据流路径 /static/imgs/sb.jpg
                    var cur_time = new Date().getTime()
                    var des_name = cur_time + "." + file_type
                    var des_stream = fs.createWriteStream("./static/ imgs/" + des_name)
                //4.将2中的数据流流入4中
                        read_stream.pipe(des_stream) 
                        ctx.body =”上传成功" 
            });
    15. jQuery.form.js插件的使用
            <script>
                $(".upload_form")[0].onsubmit = function () {
                    event.preventDefault(
                    //自己获取文件数据并通过ajax提交
                    $(this).ajaxSubmit({ 
                        error: function () {
                            console.log("提交失败”)
                        },
                        success: function () {
                            console.log("提交成功”)
                        },
                        uploadProgress: function (event,pos,total ,percent) {
                            console . log(percent)
                        }
                    });
                }
            </script>
    16. 安装mysql8(补充说明)
        1. 假设: 安装的同时 设置的密码是:  Leifeng123
        2. 通过 终端 访问mysql 
            mysql -u root -p  
            Leifeng123
            可以访问mysql
        3. 通过 工具 或者 项目中的 mysql 模块 去访问数据库
            var mysql = require('mysql');
                var db = mysql.createConnection({
                    host: 'localhost',
                    user: 'root',
                    password: 'Leifeng123',
                    database: 'school'
                });
            db.connect();
            访问不成功
        4. 原因: 
            mysql 8 密码加密方式 不是之前的 正常的加密方式
        5. 解决办法: 
            让 mysql8 中的密码 采用, 之前统一的加密方式
        6. 解决步骤: 
            1.终端: mysql -u root -p
            2.password : Leifeng123
            3.show databases;
            4.use mysql;   
        5. 将 mysql 中 root 的密码改为 正常加密模式
            alter user 'root'@'localhost' idetified with mysql_native_password by 'Leifeng123';
            flush privileges;
        6. exit;
        7. 此时 第 3 步 就可以成功访问了
    17. 使用cnpm install  会按照packgae.json文件类的参数自动安装所需模块
        所以在项目传输过程中不需要模块文件夹 
    18.axjx中 opne('GET',url,true))      GET请求 只能带参数 参数可见 参数在?后面
        opne('POST',url,true))      POST请求 可以带参数 或者文件 带的参数或文件不可见 参数或文件在body里面(肚子)
        get请求:ctx.request.query.参数名
        POST请求:ctx.request.body.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值