使用Node.js Express 框架编写后台接口

版权声明: https://blog.csdn.net/qq_23521659/article/details/84894821

本次demo地址:

https://github.com/wyysgithub/node-server-demo

一,数据库建表;

本人用的phpStudy里的mysql数据库,管理工具就是用的自带的phpMyAdmin;phpStudy是一个很不错的工具,能快速搭建起一个你所需要的开发环境,力荐。(后期有时间也会尝试开发php接口,虽然本人是一枚前端开发工程师)

可视化操作没什么可说的,主要注意的地方有两点:

1:id自增;勾选后面A_I,意思是auto_increment;

2:unsigned属性:将数字类型无符号化;简单说就是不要负数了,因为我们是自增的ID

二,初始化项目;

1:新建文件夹;

2:初始化项目;

npm init

一直往下确认即可,entry point 时,声明一个入口文件 index.js

(或者生成package.json文件后自己手动添加也行)

3,安装express;

npm install express --save

4,安装mysql依赖;

npm install mysql --save

(关于--save和--save-dev的区别可见我另外一篇文章:--save 和 --save-dev 之间的区别)

最终生成的配置文件:

三,项目配置文件;

新建config文件夹,这里存放项目的一些配置;

首先是数据库配置文件:

config/config.json


{
  "host":"127.0.0.1",
  "port":"3306",
  "user":"root",
  "password":"root",
  "database":"test"
}

四,接口编写;

1,引入 express及router、mysql及mysql配置;

2,连接数据库;

3,获取参数;

4,创建sql语句并执行;

5,封装返回结果;

6,关闭数据库;

api/add.js

const express = require('express');
const router = express.Router();
const mysql = require('mysql');
const config = require('../config/config');

//post
router.post('/', function (req, res) {


    // 连接数据库
    const connection = mysql.createConnection(config);
    connection.connect();

    // 获取传进来的参数
    var name = req.body.name || '';

    //添加构建语句,Id属性为auto_increment
    var sql = "insert into user values ('',"+connection.escape(name)+")";
    console.log(sql);

    // 执行语句
    connection.query(sql,function (err,rows,fields) {
        //返回数据
        res.send({
            status:true,
            data:rows,
            message:"处理成功!"
        });
        connection.end();
    })
})
module.exports = router;

在入口文件声明:

1,解析body里面的数据,使用body-parser;

2,声明‘/add’路由接口指向;

index.js

const express=require('express');
const app=express();

// body解析
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}))

// 处理文件路径的模块
const path = require('path');

// view处理 配置ejs模板文件存放路径
app.set('views',path.join(__dirname,'views'));
// 为express服务器,设置模板引擎类型
app.set('view engine','ejs');

// 静态文件处理,定义并创建一个目录存放静态文件
app.use(express.static('src'));

// 页面路由 路由‘/’ 执行 index
const home=require('./routers/home');
app.use('/',home);

// 接口路由处理
const add = require('./api/add');
app.use('/add',add);


// 运行 127.0.0.1:9999
const port=9999
const server = app.listen(9999,function () {
    console.log('启动成功,路径:'+'127.0.0.1:'+port)
})

五,测试接口

写个html,发个post请求试一试:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>首页</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<div>
    <button onclick="add()">添加</button>
    <script>
        function add() {
            $.post('/add',{
                name:'WangYY'
            },function (res) {
                console.log('添加成功!用户id:'+res.data.insertId)
            })
        }
    </script>
</div>
</body>
</html>

效果:

这是一个基础demo,仅供大家学习参考;

猜你喜欢

转载自blog.csdn.net/qq_23521659/article/details/84894821