今天,我教大家来搭建一个简单服务端

参考文章:

https://www.jianshu.com/p/cb89d9ac635e

https://www.cnblogs.com/jj-notes/p/6670310.html

https://www.cnblogs.com/cxxjohnson/p/5914583.html

使用的工具:

navicat  快速操作数据库,因为大多数前端对于sql语句的使用都不熟,所以为了快速搭建就推荐大家使用navicat

postman 模拟post请求,get可以用chrome模拟

git bash用于代替cmd使用命令行,当然你也可以用mobaxterm

另外需要安装node.js、mysql,以及express等框架或依赖

第一步:

利用express创建一个基本的express应用程序

express --view=pug myapp

其中app.js为:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan'); var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users'); var app = express(); // view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug'); app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter);
app.use('/users', usersRouter); // catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
}); // error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page
res.status(err.status || 500);
res.render('error');
}); module.exports = app;

index.js为

var express = require('express');
var router = express.Router();
var Mock = require('mockjs')
var mysql = require('mysql');
var URL = require('url'); //创建连接
var connection = mysql.createConnection({
host : 'localhost',
user : 'admin1',
password : 'Admin12304516',
database : 'mock'
});
//执行创建连接
connection.connect();
//SQL语句
var sql = 'SELECT * FROM user';
var addSql = 'INSERT INTO user(id,name,sex,phone,mail) VALUES(?,?,?,?,?)'; router.get('/getFromSql', function(req, res, next) {
//解析请求参数
var params = URL.parse(req.url, true).query; //查
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log(params.id); //把搜索值输出
res.send(result);
});
}); router.post('/setFromSql', function(req, res, next) {
//解析请求参数
var params = URL.parse(req.url, true).query;
var addSqlParams = [params.id, params.name, params.sex,params.phone,params.mail]; //增
connection.query(addSql,addSqlParams,function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
res.send("添加失败")
return;
}else{
res.send("添加成功")
}
}); }); /* GET home page. */
router.get('/getFromMock', function(req, res, next) {
// res.render('index', { title: 'Express' }); res.header('Cache-Control','no-store') var data = Mock.mock({
// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
'list|1-10': [{
'id|+1': 1,
'email': '@EMAIL', //邮箱
'name': '@name', //名字
'time':'@now' //当前时间
}]
})
// 输出结果
res.send(JSON.stringify(data, null, 4)) }); router.post('/postFromMock', function(req, res, next) {
// res.render('index', { title: 'Express' }); res.header('Cache-Control','no-store') var data = Mock.mock({
// 属性 list 的值是一个数组,其中含有 1 到 10 个元素
'list|1-10': [{
'id|+1': 1,
'email': '@EMAIL', //邮箱
'name': '@name', //名字
'time':'@now' //当前时间
}]
})
// 输出结果
res.send(JSON.stringify(data, null, 4)) }); module.exports = router;

查数据时,可以不从数据库查,而利用mockjs来模拟,所以查数据有两种方式

表结构

PS:使用navicat,先用cmd登录后拿到id,放到navicat中再输入账号密码

npm start运行,运行结果

查1

查2,mock的数据和sql不同以示区分

代码可以见我的GitHub 仓库 https://github.com/heytheww/localServer/tree/master/myapp

前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回的更多相关文章

  1. 前端用node+mysql实现简单服务端

    node express + mysql实现简单服务端前端新人想写服务端不想学PHP等后端语言怎么办,那就用js写后台吧!这也是我这个前端新人的学习成果分享,如有那些地方不对,请给我指出. 1.准备工 ...

  2. Node.js是一个事件驱动I/O服务端JavaScript环境

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎.目的是为了提供撰写可扩充网络程序,如Web服务.第一个版本由Ryan Dahl于2009年发布,后来,Jo ...

  3. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  4. Node.js Express 的安装和简单使用

    Express的安装: 1.命令行窗口 //--> npm install 组件名 @版本号 --> npm install express @4   //这里安装最新的版本 也可以这样: ...

  5. [转]分别使用Node.js Express 和 Koa 做简单的登录页

    本文转自:https://blog.csdn.net/weixin_38498554/article/details/79204240 刚刚学了Koa2,由于学的不是很深,并没有感受到网上所说的Koa ...

  6. Node.js Koa2开发微信小程序服务端

    1.promise.async.await const Koa = require('koa') const app = new Koa() // 应用程序对象 有很多中间件 // 发送HTTP KO ...

  7. Node.js 使用jQuery取得Nodejs http服务端返回的JSON数组示例

    server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...

  8. Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例

    server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...

  9. Node.js:上传文件,服务端如何获取文件上传进度

    内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题<nodejs multer有没有查看文件 ...

随机推荐

  1. C# winform自动更新 (附 demo下载)

    随着需求的变化,如果Server每次更新出新的内容,Client都要重新安装的话. 太过于复杂化.  所以自动更新是很有必要的. 一..NET自带的更新方式    以服务器端为主  (自动更新,微软爸 ...

  2. 多个微信小程序一个服务端架构

    由于某些特定的业务场景,当多个小程序需要一个服务端后台提供数据时,大家可能想到是HTTP路由.是的,实际上我们使用微服务的GateWay网关也是一样的,如下图微服务架构: 网关GateWay的作用在于 ...

  3. 对比JavaScript中的Continue和Break

    译者按: 最好是不用,不过基础知识要掌握. 原文: JavaScript: Continue vs Break - Learn the difference between the continue ...

  4. div和span标签

    ------------------------ ------------------------ ------------------------ 块级标签独占一行,不和别的标签在同一行显示:行内标 ...

  5. Laravel 系列入门教程(一)【最适合中国人的 Laravel 教程】

    热烈庆祝 Laravel 5.5 LTS 发布! 实际上 Laravel 上一个 LTS 选择 5.1 是非常不明智的,因为 5.2 增加了许许多多优秀的特性.现在好了,大家都用最新的长期支持版本 5 ...

  6. 使用CSS实现无滚动条滚动

    我们都知道,撸页面的时候当我们的内容超出了我们的div,往往会出现滚动条,影响美观. 尤其是当我们在做一些导航菜单的时候.滚动条一出现就破坏了UI效果. 我们不希望出现滚动条,也不希望超出去的内容被放 ...

  7. JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象

    创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...

  8. vue从入门到进阶:简介(一)

    前言 用了这么久的vue了,但是一直没有时间写个系列文章,现在抽一定时间总结下vue的知识点. 首先,Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript ...

  9. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  10. Android为TV端助力 MediaPlayer API大全已经方法详解(转载)

    通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态.当调用了rele ...