关于我 . 文档 . 流水 . 服务

NodeJs学习记录(三):连接数据库,并更改模版引擎,以.html为后缀

NodeJs

前两天学习了使用Express依赖,创建ejs模版引擎,连接数据库并将数据渲染到前台页面。

上一章记录了利用Express命令自动创建了项目目录,接下来就进行深化的处理,使其慢慢形成一个完整的项目。

后经过查看其他人github的开源代码,发现大多都使用html为后缀,于是就检查package.json发现了art-template。

经过查询,发现art-template不但渲染速度更快,而且语法非常简洁,果断使用,下面的步骤可以更改ejs变为html。


第一步:安装 art-template

$ cnpm install art-template@3.0.3

或者在package.json的dependencies中添加"art-template": "^3.0.3"


第二步:在app.js中修改

    // 引入art-template
    var changeTemplate = require('art-template');

    // view engine setup
    /// app.set('views', path.join(__dirname, 'views'));
    /// app.set('view engine', 'html');

    ///use html template
    app.set('views', path.join(__dirname, 'views'));
    changeTemplate.config('base','');
    changeTemplate.config('extname','.html');
    app.engine('.html',changeTemplate.__express);
    app.set('view engine', 'html');



第三步:将ejs文件修改成html

略...


第四步:获取mysql中的数据渲染到html页面中

1)根目录创建 database.js

    // 连接MySQL
    var mysql = require('mysql');
    var pool = mysql.createPool({
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'nodejstest'
    });

    function query(sql, callback) {
        pool.getConnection(function (err, connection) {
            // Use the connection
            connection.query(sql, function (err, rows) {
                callback(err, rows);
                connection.release();//释放链接
            });
        });
    }
    exports.query = query;


2)进入路由,将数据库信息取出来

    var express = require('express');
    var router = express.Router();
    var db = require("../db"); //引入数据库封装模块

    /* GET home page. */
    router.get('/', function(req, res, next) {
      //查询websites表
      db.query("SELECT * FROM websites",[],function(results,fields){
        var resData;
        if(results){
          resData = results;
        }else{
          resData = fields;
        }
    
        res.render('index', { con: resData });
      })
  
    });

    module.exports = router;


3)渲染index.html

进入views/index.html

<!DOCTYPE html>

<html>

  <head>

    <title>title</title>

    <link rel='stylesheet' href='/stylesheets/style.css' />

  </head>

  <body>

    <h1>第一个nodejs应用</h1>

    <table>


      {{each con as obj index}}

      <tr><td>{{ obj.id }}</td><td><{{ obj.name }}</td><td>{{ obj.url }}</td><td>{{ obj.country }}</td></tr>

      {{/each}}

    </table>

    <p>我是内容</p>

  </body>

</html>


第五步:启动项目

npm start

发现已经将mysql的数据成功渲染到了首页。