node+express+socket.io+mysql=通信服務器搭建(一)

首發github/blog 歡迎你們評論給星javascript

安裝

首先假定你已經安裝了 Node.js,接下來爲你的應用建立一個目錄,而後安裝express-generator應用骨架css

$ 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

執行此命令後會有如下代碼html

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

項目文件分析

項目建立成功以後,生成四個文件夾和兩個文件,java

  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,內容以下:node

// 引入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表模塊 內容以下:mysql

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 內容以下:git

//admin_user表 sql語句
var AdminUserSQL = {
  queryAll: 'SELECT * FROM admin_user',
};

module.exports = AdminUserSQL;

進入app.js,加入一下代碼:github

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

啓動

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

Express
Welcome to Express

userName    姓名
admin   超級管理員

總結

node.js配合express鏈接mysql獲取admin_user表的簡單demo完成。
通信服務器搭建第一步完成,下一步咱們將配合socket.io完成消息推送。歡迎你們評論交流。
源碼見github數據庫

相關文章
相關標籤/搜索