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. hive遇到的问题以及解决办法

    hive java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.data.JsonSerDe not found hadoo ...

  2. C#动态加载/卸载Assembly的解决方案

    1.  Assembly中的类要从MarshalByRefObject继承,如果你想从你自己的类来继承,那么请选用interface或者继续研究其他解决方案. namespace Library { ...

  3. 添加Image Stream(转)参考 开源容器云OpenShift

    Image Stream是一组镜像的集合,可以在一个Image Stream中定义一些名称及标签,并定义这些名字及标签指向的具体镜像. 使用Image Stream的目的是方便地将一组相关联的镜像进行 ...

  4. route(windows)

    1.route delete 0.0.0.0 mask 0.0.0.0 10.33.31.254----------删除默认到内网网关的默认路由:2.route add -p 10.33.0.0 ma ...

  5. Linux学习笔记(第七章)

    目录相关操作 pwd -P 显示出实际工作目录,pwd 显示链接路径 mkdir -m 配置新建文件的权限 例:mkdir -m 711 testmkdir -p 建立多层目录,无需一层一层建立 rm ...

  6. 学习笔记一:I2C协议学习和Verilog实现

    ////////////////////////////////////////////////// //clk = 20 MHz ,一个周期50ns //sck = 100 kHz (scl) ,一 ...

  7. hadoopStreamming 编程

    熟悉hadoop作业提交的人,只要明白streaming的参数就可以学会提交了,streaming提交作业比较灵活,支持多种语言,但是streaming有个缺陷就是,其封装的参数涉及到mapreduc ...

  8. 2017-2018-1 20155220 《信息安全系统设计基础》课下实践——实现mypwd

    学习pwd命令 输入pwd命令 于是man 1 pwd查看pwd详细 然后查看pwd实现需要的系统调用man -k; grep 在这发现了一个功能相同的内核函数getcwd 到这步就很简单了,先查看这 ...

  9. vba 批量生成条形图代码

    Sub hong3()'' 宏3 宏d Dim a, b As Integer Dim str As String For a = 227 To 947 Step 15 b = a + 5 str = ...

  10. JavaScript总结(七)

    JavaScript表单编程 表单是Web上与用户进行交互的主要界面.则我们需要掌握如何访问用户输入的表单数据,校验用户输入的正确性显得至关重要. ♞ 对Form元素进行脚本编写 ✍ 获取表单的应用 ...