• node+express+socket.io+mysql=通讯服务器搭建(一)


    首发github/blog 欢迎大家评论给星

    安装

    首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后安装express-generator应用骨架

    $ mkdir node-demo
    $ npm install express-generator -g //mac需要加sudo
    

    express -h

    $ express -h
      用法: express [options] [dir]
      选项:
    
        -h, --help          输出使用信息
        -V, --version       输出版本号
        -e, --ejs           添加ejs引擎支持(默认为jade)
            --hbs           添加handlebars引擎支持
        -H, --hogan         添加hogan.js引擎支持
        -c, --css <engine>  添加stylesheet <engine> 支持 (less|stylus|compass|sass) (默认为CSS)
            --git           添加.gitignore
        -f, --force         非空目录上的 force
    

    express-generator 生成应用骨架

    $ express node-demo
    

    执行此命令后会有以下代码

    warning: the default view engine will not be jade in future releases
    warning: use `--view=jade' or `--help' for additional options
    
    //警告:默认的视图引擎在未来版本中不会是JADE
    //警告:使用“-VIEW = JADE”或“帮助”选项
    
    //这里我们重新生成骨架默认为ejs模板 使用以下命令
    
    //express --view=ejs blog
    //--view=模板引擎的名称,有很多种
    //blog为项目文件夹名称
    
    $ express --view=ejs node-demo  使用ejs模板引擎
    // 出现以下信息,安装指示 一步一步进行
       create : node-demo/
       create : node-demo/public/
       create : node-demo/public/javascripts/
       create : node-demo/public/images/
       create : node-demo/public/stylesheets/
       create : node-demo/public/stylesheets/style.css
       create : node-demo/routes/
       create : node-demo/routes/index.js
       create : node-demo/routes/users.js
       create : node-demo/views/
       create : node-demo/views/error.jade
       create : node-demo/views/index.jade
       create : node-demo/views/layout.jade
       create : node-demo/app.js
       create : node-demo/package.json
       create : node-demo/bin/
       create : node-demo/bin/www
    
       change directory:
         $ cd node-demo
    
       install dependencies:
         $ npm install
    
       run the app:
         $ DEBUG=node-demo:* npm start
    

    运行express

    $ npm start 
    
    //浏览器输入 http://localhost:3000/
    //即可看到
    
    //Express
    //Welcome to Express
    

    项目文件分析

    项目创建成功之后,生成四个文件夹和两个文件,

    1. app.js
      • 这是它的初始形式,这个模块还要继续导出给bin文件夹下的www文件使用
    2. 配置信息文件packetage.json
    3. bin是项目的启动文件,配置以什么方式启动项目,默认 npm start
      • www文件:这里拥有着http服务器的基本配置
    4. public是项目的静态文件,放置js css img等文件
    5. routes是项目的路由信息文件,控制地址路由
    6. views是视图文件,放置模板文件ejs或jade等(其实就相当于html形式文件啦~)
    7. express这样的MVC框架模式,是一个Web项目的基本构成。

    进化项目——连接数据库

    $ npm install mysql --save
    

    根目录sql文件夹 里面新建sqlConfig.js,内容如下:

    // 引入mysql
    
    var mysql = require('mysql');
    var pool = mysql.createPool({
      host: "localhost", //这是数据库的地址
      port: "2000",
      user: "root", //需要用户的名字
      password: "12345", //用户密码 ,如果你没有密码,直接双引号就是
      database: "huang" //数据库名字
    });
    
    /**
     * @param {*} sql sql语句
     * @param {*} callback 回调函数
     */
    function query(sql, callback) {
      pool.getConnection(function (err, connection) {
        connection.query(sql, function (err, rows) {
          callback(err, rows);
          connection.release(); //释放链接
        });
      });
    }
    
    exports.query = query;
    

    routes文件夹下面新建admin_user.js对应 admin_user表模块 内容如下:

    var express = require('express');
    var router = express.Router();
    
    //引入数据库包
    var sql = require("../sql/sqlConfig.js");
    /**
     * 查询列表页
     */
    router.get('/', function (req, res, next) {
      sql.query('select * from admin_user', function (err, rows) {
        if (err) {
          console.log(err)
          res.render('index.ejs', { title: 'Express', datas: [] });
        } else {
          res.render('index.ejs', { title: 'Express', datas: rows });
        }
      })
    });
    
    module.exports = router;
    

    sql文件夹 继续新建 AdminUserSQL.js 内容如下:

    //admin_user表 sql语句
    var AdminUserSQL = {
      queryAll: 'SELECT * FROM admin_user',
    };
    
    module.exports = AdminUserSQL;
    

    进入app.js,加入一下代码:

    //引入users模块
    var AdminUsersRouter = require('./routes/admin_user');
    app.use('/get-admin-users', AdminUsersRouter);
    

    启动

    http://localhost:3000/get-admin-users

    Express
    Welcome to Express
    
    userName	姓名
    admin	超级管理员
    

    总结

    node.js配合express连接mysql获取admin_user表的简单demo完成。
    通讯服务器搭建第一步完成,下一步我们将配合socket.io完成消息推送。欢迎大家评论交流。
    源码见github

  • 相关阅读:
    NFS原理
    linux NFS配置案例
    centos swap分区
    git常用命令
    MHA介绍和基础、原理、架构、工具介绍
    mysql5.7.26部署MHA
    mysql5.7.26 基于GTID的主从复制环境搭建
    MHA监控进程异常退出(MHA版本:0.56)
    mysql 主从 Last_IO_Errno错误代码说明
    mysql 在gtid环境下缺少一部分binlog部署从库
  • 原文地址:https://www.cnblogs.com/ychl/p/9142166.html
Copyright © 2020-2023  润新知