zoukankan      html  css  js  c++  java
  • node.js 实际应用记录

    1、写了个node结合shim.js和xlsx.js对excel表格进行转json操作,在转json的方法中调用文件读取、转码和输出路径方法,读取上传的excel文件,判断表格竖列是否为空,指定表格列转为json对象名和值,写入json文件中输出到自定义目录,执行node服务时需要npm安装fs、expres和body-parser,现有的问题是输出到transform文件夹下的json文件各列值为空

    2、使用node进行连接mysql建表时,提示express的createServer方法不可用,检查了资料是因为从express2.x版本更新到4.x过程中摒弃了创建服务的方法,切换到2.x版本使用;

    3、更换express版本解决了express的报错内容,连接mysql时候报错客户端不支持服务器身份验证,进入cmd对mysql进行操作,连接成功的,并且能读表,但是在使用sqlyog时候,测试链接不通过,通过重置mysql的root密码之后连接成功;

    4、在服务js中定义编辑mysql语句后,使用db.query来执行sql语句 db.query()方法有两个参数 ,第一个参数是要执行的语句,第二个参数是个回调函数,回调函数里可以接收错误信息,也有执行后回来的信息,代码逻辑错误优先

    5、mysql数据库中新建了东大数据库使用统计表,使用node读取到了表中数据的json格式,但是随后甩出来报错无法设置头,检查了开发者模式后发现是在send之后,异步回调时send会再自行加上一个head,两处head会报错,将请求后的结果return,页面能输出表中的json;

    6、vue的demo项目中插入node服务,执行服务后显示服务执行成功,但是在vue中用axios进行跨域时,遇到两处问题,一是返回的json数据中文显示为乱码,确认过代码中规定了使用“utf-8文字编码”,原因需要排查;二是跨域时提示“Access-Control-Allow-Origin”,怀疑是在cors在初次请求origin没有添加请求头或者响应头,网上解释要在server.js中添加响应头、文字类型等跨域访问配置,配置完之后解决了报错问题;

    7、为了方便node服务停机重载和负载均衡,对大数据项目安装使用PM2功能修改文件配置项,并及时切换环境运行项目;

    8、触摸屏完成安装mysql,迁移数据时候会因出错终止,检查了日志文件是因为迁移出的是mysql8.0,文字编码是utf8mb4,触摸屏文字编码是utf8,导入sql时候报错是字符集和数据库排序规则的问题,修改mysql中数据库和表的字符集为utf8,数据库排序规则为utf8_general_ci;

    9、导入外部sql文件,执行到39个sql语句就报错,而且出现sqlyog报错文件体积800MB导致编辑器打不开,使用了大文件编辑器emeditor,能够读写大体积文档; mysql执行的sql脚本里是批量插入,需要的缓存空间比较大。而mysql默认的可能才几m或者多少kb而已,因此修改了mysql缓存空间,重装数据库以及重启服务有可能会失效,以后会常用,这里代码是:

    SET GLOBAL max_allowed_packet=2684355456;;

    附上server.js

    var express = require('express')

    var app = express()

    var fs = require('fs')

    var mysql = require('mysql')

    var cors = require('cors')

    // 设置跨域访问
    app.all('*', function (req, res, next) {
      res.header('Access-Control-Allow-Origin', '*')
      res.header('Access-Control-Allow-Headers', 'X-Requested-With')
      res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')
      res.header('X-Powered-By', ' 3.2.1')
      res.header('Content-Type', 'application/json;charset=utf-8')
      next()
    })

    app.use(
      cors({
        origin: ['http://localhost:3000'],
        methods: ['get', 'post'],
        allowedHeaders: ['Content-Type', 'Authorization']
      })
    )

    app.get('/list', function (req, res) {
      fs.readFile(__dirname + '/' + 'list.json', 'utf-8', function (err, data) {
        console.log('执行服务成功')
        res.end(data)
      })
    })

    const db = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: '*********',
      port: '3306',
      database: 'tables'
    })

    db.connect(err => {
      if (err) throw err
      console.log('连接成功')
    })

    // 判断是否有newsjk或newztk
    app.get('/getDatabases', (req, res) => {
      let sql = 'show tables;'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/newsjk', (req, res) => {
      let sql = 'SELECT * FROM newsjk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/newsjkCount', (req, res) => {
      let sql = 'SELECT * FROM newsjk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/newztk', (req, res) => {
      let sql = 'SELECT *FROM newztk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/newztkCount', (req, res) => {
      let sql = 'SELECT *FROM newztk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ddsjk', (req, res) => {
      let sql = 'SELECT * FROM ddsjk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ddsjkCount', (req, res) => {
      let sql = 'SELECT * FROM ddsjk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ddztk', (req, res) => {
      let sql = 'SELECT *FROM ddztk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ddztkCount', (req, res) => {
      let sql = 'SELECT *FROM ddztk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ndsjk', (req, res) => {
      let sql = 'SELECT *FROM ndsjk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ndsjkCount', (req, res) => {
      let sql = 'SELECT *FROM ndsjk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ndztk', (req, res) => {
      let sql = 'SELECT *FROM ndztk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/ndztkCount', (req, res) => {
      let sql = 'SELECT *FROM ndztk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/nsdsjk', (req, res) => {
      let sql = 'SELECT *FROM nsdsjk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/nsdsjkCount', (req, res) => {
      let sql = 'SELECT *FROM nsdsjk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/nsdztk', (req, res) => {
      let sql = 'SELECT *FROM nsdztk'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/nsdztkCount', (req, res) => {
      let sql = 'SELECT *FROM nsdztk_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/school', (req, res) => {
      let sql = 'SELECT *FROM school'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/schoolpm', (req, res) => {
      let sql = 'SELECT *FROM schoolpm'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/schoolLw', (req, res) => {
      let sql = 'SELECT *FROM schoolLw'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/hospital', (req, res) => {
      let sql = 'SELECT *FROM hospital'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/hospitalpm', (req, res) => {
      let sql = 'SELECT *FROM hospitalpm'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/hospitalLw', (req, res) => {
      let sql = 'SELECT *FROM hospitallw'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/hospitalTable', (req, res) => {
      let sql = 'select hospital1.year,hospital2.year,hospital3.year,hospital4.year,hospital1.value,hospital2.value,hospital3.value,hospital4.value from ((hospital1 left join hospital2 on hospital1.name=hospital2.name) left join hospital3 on hospital1.name=hospital3.name) left join hospital4 on hospital1.name=hospital4.name'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/dangzheng', (req, res) => {
      let sql = 'SELECT *FROM dangzheng'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/dangzhengLw', (req, res) => {
      let sql = 'SELECT *FROM dangzhenglw'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/tongjiCount', (req, res) => {
      let sql = 'SELECT *FROM tongji_count'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/tongjiFw', (req, res) => {
      let sql = 'SELECT *FROM tongji_fawen'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    app.get('/tongjiBy', (req, res) => {
      let sql = 'SELECT *FROM tongji_beiyin'
      db.query(sql, (err, result) => {
        if (err) {
          console.log(err)
        } else {
          console.log(result)
          res.json(result)
        }
      })
    })

    var server = app.listen(3000, function () {
      var host = server.address().address
      var port = server.address().port
      console.log(host, port)
    })
  • 相关阅读:
    一些有意思的网站
    SQLLocalDB 11.0持续报错,这是泥马德什么问题啊!!!
    SystemErrorCodes
    事件查看器事件ID部分说明
    Application.AddMessageFilter(this);
    Provider:SSL提供程序,error:0
    SQL Server的“错误:9004”
    关于TortoiseSVN的一些知识
    progressBar走马灯设置
    2015广州强网杯(Misc)
  • 原文地址:https://www.cnblogs.com/zax0927/p/12713747.html
Copyright © 2011-2022 走看看