首发 github/blog https://github.com/huanglong6828/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
项目文件分析
项目创建成功之后, 生成四个文件夹和两个文件,
app.js
这是它的初始形式, 这个模块还要继续导出给 bin 文件夹下的 www 文件使用
配置信息文件 packetage.json
bin 是项目的启动文件, 配置以什么方式启动项目, 默认 npm start
www 文件: 这里拥有着 http 服务器的基本配置
public 是项目的静态文件, 放置 js css img 等文件
routes 是项目的路由信息文件, 控制地址路由
views 是视图文件, 放置模板文件 ejs 或 jade 等 (其实就相当于 html 形式文件啦~)
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 完成消息推送. 欢迎大家评论交流.
源码见 https://github.com/huanglong6828/node-express-socket
来源: https://www.cnblogs.com/ychl/p/9142166.html