1. 建立数据连接setting.js

var settings = {};
settings.db = {
host: 'localhost',
user: 'root',
password: '1234',
port: '3306',
database: 'testnode'
}
module.exports = settings;

2. mysqlconn.js

var mysql = require('mysql');
var settings = require('./setting')
var conn = mysql.createConnection(settings.db);
conn.connect();
module.exports = conn;

3. app.js

app.set('views', path.join(__dirname, 'views'));
//设置模板的后缀是html
app.engine('html', require('ejs').renderFile);
//指定总模板
app.set('view engine', 'html');

4.建立路由idnex.js

var express = require('express');
var router = express.Router();
var data = require('../DataSql/index')
//用户学生列表
router.get('/', function(req, res, next)
{
data.getList(function(err,retult)
{
res.render('index', {
title: '学生列表',
data:retult
});
})
});
module.exports = router;

5.views 建立index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>
<%=title%>
</title>
</head>
<body style="margin:auto 0">
<form action="/users/search" method="post">
<div style="padding: 0fr; position:relative; margin: 0 auto;">
姓名:<input type="text" name="s_name" value="<%=data.usernmae%>">
年龄:<input type="text" name="s_age" value="<%=data.sex%>">
<input type="submit" value="查询">
</div>
</div>
</form>
<table style="margin: 10px">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>操作</th>
</tr>
<% for(var i=0;i<data.length;i++){%>
<tr>
<td>
<%=data[i].id%>
</td>
<td>
<%=data[i].usernmae%>
</td>
<td>
<%=data[i].sex%>
</td>
<td><a href="/users/add">添加用户</a></td>
<td><a href="/users/del/<%=data[i].id %>">删除</a></td>
<td><a href="/users/toUpdate/<%=data[i].id %>">修改</a></td>
</tr>
<%}%>
</table>
</body>

</html>

5.数据库操作index.js

//var db = require("./mysql");
var conn =require("../DataSql/sqlconn");
/* exports.getList = function (callback)
{
var sqlstr = "select * from student";
db.driver.execQuery(sqlstr,function(err, data)
{
return callback(err, data);
});
}; */
exports.getList = function (callback)
{
var sqlstr = "select * from student";
conn.query(sqlstr,function(err, data)
{
return callback(err, data);
});
};
//conn.end();
//console.log(db);

pasting

数据库

/*
Navicat MySQL Data Transfer
Source Server         : localhost
Source Server Version : 50519
Source Host           : localhost:3306
Source Database       : testnode
Target Server Type    : MYSQL
Target Server Version : 50519
File Encoding         : 65001
Date: 2018-09-14 15:26:22
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL,
  `usernmae` varchar(255) DEFAULT NULL,
  `sex` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'dqh', '33');
INSERT INTO `student` VALUES ('2', 'ddd', '11');
INSERT INTO `student` VALUES ('3', 'eee', '11');

nodejs ejs模板数据库操作的更多相关文章

  1. node jade模板数据库操作

    /* Navicat MySQL Data Transfer Source Server         : localhost Source Server Version : 50519 Sourc ...

  2. 前端笔记之NodeJS(三)Express&ejs模板引擎&请求识别

    一.Express框架 1.1基本使用 创建http服务器特别麻烦,express框架解决了这个的问题. Express在node界的地位,就相当于jQuery在DOM界的地位.jQuery的核心就是 ...

  3. nodejs 数据库操作,消息的发送和接收,模拟同步

    var deasync = require('deasync'); //导入模板 var mysql=require('mysql'); var Stomp = require('stompjs'); ...

  4. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  5. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  6. django上课笔记4-复习数据库操作-复习模板-Seccion-详细cookie和session的区别

    一.复习数据库操作 字段类型 字符串 EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharFi ...

  7. NodeJS - Express 3.0下ejs模板使用 partial展现 片段视图

    如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express 3.0 本书实例背景是 Express 2.0 而如今升级 ...

  8. 62.nodejs中的ejs模板学习

    转自:https://blog.csdn.net/dongmelon/article/details/72403913 02.ejs.这是被include的文件 <script> cons ...

  9. Express全系列教程之(十一):渲染ejs模板引擎

    一.简介 相比于jade模板引擎,ejs对原HTML语言就未作出结构上的改变,只不过在其交互数据方面做出了些许修改,相比于jade更加简单易用.因此其学习成本是很低的.您也可参考ejs官网:https ...

随机推荐

  1. [NOIp2009] $Hankson$の趣味题

    \(23333\)这是最近第二份在时间上吊打\(yjk\)的代码--啊哈哈哈哈哈哈哈 嗯,其实遇到这种单纯的\(gcd \ \ or \ \ lcm\)的题,我们都可以用一种比较简单的方法分析:唯一分 ...

  2. iRedMail搭建完后登录提示【连接至IMAP服务器失败】(转)

    http://ask.apelearn.com/question/8080(参考) ================搭建步骤如下=====================登录www.net.cn,产品 ...

  3. 404 Note Found 队-Beta5

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  4. The Gene of Bitizens

    1.          Summary The document is about the general idea of the architecture design of the Bitizen ...

  5. day 86 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui

      本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 webpack创建项目的玩法 五 element-ui的使用 六 xxx 七 xxx 八 xxx 一 ...

  6. Dynamics 365 可编辑子网格的字段禁用不可编辑

    在365中引入了subgrid的行可编辑,那随之带来的一个问题就是,在主表单禁用的状态下,如何禁用行编辑呢,这里就用到了subgrid的OnRecordSelect方法. 代码很简单,   我这里是禁 ...

  7. Linux下onvif客户端获取ipc摄像头 GetStreamUri:rtsp地址(h264、h265)

    GetStreamUri:rtsp地址 鉴权:但是在使用这个接口之前是需要鉴权的.ONVIF协议规定,部分接口需要鉴权,部分接口不需要鉴权,在调用需要鉴权的接口时不使用鉴权,会导致接口调用失败.实现鉴 ...

  8. Scala(四):对象

    对象:Object 1.单例对象 2.伴生对象 3.扩展类或特质的对象 4.apply方法 5.应用程序对象 6.枚举1.单例对象 Scala中没有你静态方法或静态字段,可以用object这个语法结构 ...

  9. 大数据入门第六天——HDFS详解

    一.概述 1.HDFS中的角色 Block数据: HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是 ...

  10. Python连接MySQL数据库执行sql语句时的参数问题

    由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...