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. ubuntu16.04常见的问题解决方案

    问题一:关于咖啡主机和其他服务器厂商和个人虚拟机VM10安装ubuntu16.04 ubuntu16.04默认是没有root用户的,要想有必须要通过用户创建,通常安装ubuntu16.04会有个让你创 ...

  2. Python3的动态加载模块简单实例

    import os import sys import time import myconfig b = ['123'] a = os.path.abspath(myconfig.__file__) ...

  3. 【10.15总结】绕过CSRF的Referer保护

    今天下午可能要出远门,所以现在就把总结写好了. Write-up地址:[Critical] Bypass CSRF protection on IBM 这个CSRF漏洞存在于IBM的修改邮箱页面,修改 ...

  4. flex“深拷贝”

    以前在<ActionScript殿堂之路>上就看到过的“深拷贝”概念一直没有好好地在实战中用到过,但是最近在开发过程中,我发现我在编写VO数据对象时的一个老习惯很浪费我的编码时间,这个习惯 ...

  5. Linux下开发python django程序(模板设置和载入数据)

    1.添加templates文件夹 2.修改settings.py文件 import os #引用 os模块 BASE_DIR = os.path.dirname(os.path.dirname(os. ...

  6. QTableWidget具体解释(样式、右键菜单、表头塌陷、多选等) (非代理)

    在公司公示Qt开发一段时间,表格用到不少,所以,今天在这做个总结,防止以后忘记. 下面为个人模拟Windows资源管理器的一个表单.(写的比較粗糙,谅解一下) 一.设置表单样式 table_widge ...

  7. centos 中sshd莫名其妙不见了?

    发现问题 遇到问题:首先莫要慌:事出有因:先检查一波: 首先呢,看一下/var/log/yum.log  是否有误删的记录: 如有被误删的操作的话:可以去看看日志:到底咋回事: 然后么 yum ins ...

  8. Codeforces 1155 D Beautiful Array DP,最大子段和

    题意 给出一个长度为\(n\)的数列和数字\(x\),经过最多一次操作将数列的一个子段的每个元素变为\(a[i]*x\),使该数列的最大子段和最大 分析 将这个数列分为3段考虑,第一段和第三段是未修改 ...

  9. Masonry的简单使用(一)

    Masonry的简单使用(一) 一.新建工程 二.导入Masonry,可从我的GitHub上获取"Masonry":https://github.com/sycFuture/Mas ...

  10. P2154 [SDOI2009]虔诚的墓主人

    略有一点点思维的题. 首先,如果一个点上,下,左,右分别有\(a,b,c,d\)棵树,那这个点的十字架方案为\(C_{a}^{k}C_{b}^{k}C_{c}^{k}C_{d}^{k}\). 按x坐标 ...