首发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

node+express+socket.io+mysql=通讯服务器搭建(一)的更多相关文章

  1. node+express+socket.io制作一个聊天室功能

    首先是下载包: npm install express npm install socket.io 建立文件: 服务器端代码:server.js var http=require("http ...

  2. node express+socket.io实现聊天室

    参照网址:https://www.jb51.net/article/135058.htm https://www.cnblogs.com/limitcode/p/7845168.html https: ...

  3. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  4. (转)使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  5. 使用Node.js+Socket.IO搭建WebSocket实时应用【转载】

    原文:http://www.jianshu.com/p/d9b1273a93fd Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新 ...

  6. Express+Socket.IO 实现简易聊天室

    代码地址如下:http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: 首 ...

  7. 转载:node.js socket.io

    本文转自:http://www.xiaocai.name/post/cf1f9_7b6507  学习node.js socket.io 使用 用node.js(socket.io)实现数据实时推送 在 ...

  8. nodejs+express+socket.io

    其实官网文档清楚了  https://socket.io/get-started/chat/ 但是因为之前写的是nodejs+express, socket.io是后加的, 还是有小坑 服务器端: 官 ...

  9. node及socket.io实现简易websocket双向通信

    技术栈: vue2.0 + node + websocket( socket.io ) 1. 安装依赖 初始化vue项目后输入下方指令安装依赖包 // 推荐cnpm安装 npm i vue-socke ...

随机推荐

  1. Myeclipse下更改所有jsp、html文件的编码

    windows-->>preferences-->>gengral-->>

  2. discuz uc_server 配置登录

    新运行uc_server环境,先配置好ucenter链接-----这部很重要,我从新环境中安装下载的discuz代码,这部没配置,密码又不知道,怎么更改调试,都不起作用,在框架中,跳转到了原来线上的u ...

  3. 预处理 Gym - 101128H

    题目链接:http://codeforces.com/gym/101128 题目大意:给你一个区间[x,y],找出这个区间有多少个seldom的数字. seldom的数字定义如下:该数值的二进制数字符 ...

  4. C语言易错点

    C语言易错点 1.每个C语言程序中main函数是有且只有一个的. 2.算法可以没有输入,但必须要有输出. 3.在函数中不可以再定义函数. 4.break可用于循环结构和switch语句. 5.brea ...

  5. 【leetcode 简单】第三十七题 相交链表

    编写一个程序,找到两个单链表相交的起始节点. 例如,下面的两个链表: A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3 在节点 c1 开始相交. 注意: 如果两个 ...

  6. RMQ之ST求区间最大值

    题目链接:https://cn.vjudge.net/problem/HRBUST-1188 每一次按照二进制的方式进行更新,二维数组dp [i] [j],i表示下标,j表示从i 开始的往后移动2的j ...

  7. 蓝色的PC端后台管理界面设计模板——后台

    链接:http://pan.baidu.com/s/1o82hXX4 密码:x6le

  8. 商城项目(ssm+dubbo+nginx+mysql统合项目)总结(2)

    我不会在这里贴代码和详细步骤什么的,我觉得就算我把它贴出来,你们照着步骤做还是会出很多问题,我推荐你们去看一下黑马的这个视频,我个人感觉很不错,一步一步走下来可以学到很多东西.另外,视频和相关文档的话 ...

  9. perl6 struct2-045 EXP

    测试站点: http://www.yutian.com.cn/index.action http://www.hjxzyzz.com:8088/pfw/login.action 代码如下: use v ...

  10. python并发编程之asyncio协程(三)

    协程实现了在单线程下的并发,每个协程共享线程的几乎所有的资源,除了协程自己私有的上下文栈:协程的切换属于程序级别的切换,对于操作系统来说是无感知的,因此切换速度更快.开销更小.效率更高,在有多IO操作 ...