后端接口开发:json,jsonp,restful

json、jsonp

/**
 * 后台接口开发
 * json接口
 * jsonp接口(解决跨域问题)
 * restful接口
 */

const express = require('express');
const db = require('./db');
const app = express();

//指定api路径allBooks
//JSON接口
//调用:http://localhost:3000/allBook
// app.get('/allBook',(req,res)=>{
//     let sql = 'select * from book';
//     db.base(sql,null,(result)=>{
//         res.json(result);
//     });
// });

//JSONP接口
//调用:http://localhost:3000/allBook?callback=foo
// app.get('/allBook',(req,res)=>{
//     let sql = 'select * from book';
//     db.base(sql,null,(result)=>{
//         res.jsonp(result);
//     });
// });

//JSONP修改callback
//调用:http://localhost:3000/allBook?cb=foo
app.set('jsonp callback name', 'cb')
app.get('/allBook',(req,res)=>{
    let sql = 'select * from book';
    db.base(sql,null,(result)=>{
        res.jsonp(result);
    });
});


app.listen(3000,()=>{
    console.log('服务启动……');
});

restful

/**
 * restful api 是从URL的格式来表述的
 * get      http://localhost:3000/books
 * get      http://localhost:3000/books/book
 * post     http://localhost:3000/books/book
 * get      http://localhost:3000/books/book/1
 * put      http://localhost:3000/books/book
 * delete   http://localhost:3000/books/book/2
 * 
 *
 * 
 * 传统的URL风格
 * http://localhost:3000
 * http://localhost:3000/toAddBook
 * http://localhost:3000/addBook
 * http://localhost:3000/toEditBook?id=1
 * http://localhost:3000/editBook
 * http://localhost:3000/deleteBook?id=2
 * 
 */

const express = require('express');
const app = express();
const db = require('./db');


//查询全部
app.get('/books',(req,res)=>{
    let sql = 'select * from book';
    db.base(sql,null,(result)=>{
        res.json(result);
    });
});

//查询指定
//http://localhost:3000/books/book/1
app.get('/books/book/:id',(req,res)=>{
    let id = req.params.id;
    let sql = 'select * from book where id =?';
    let data = [id];
    db.base(sql,data,(result)=>{
        res.json(result);
    });
});

app.listen(3000,()=>{
    console.log('服务启动……');
});

db.js

/*
    封装通用数据库通用api
 */

const mysql = require('mysql');

/**
 *
 * @param sql
 * @param data
 * @param callback
 */
exports.base = (sql, data, callback) => {
    /*
        操作数据库基本步骤
     */
    //创建数据库连接
    const connection = mysql.createConnection({
        host: 'localhost',  //数据库所在的服务器的域名或者IP地址
        user: 'root',//用户名
        password: 'admin',//密码
        database: 'book', //数据库
        port: '4406'  //端口号
    });

//执行连接操作
    connection.connect();

//操作数据库
    connection.query(sql, data, function (error, results, fields) {
        if (error) throw error;
        callback(results);
    });


//关闭数据库
    connection.end();
}
posted @ 2020-10-27 14:02  mrtransition  阅读(489)  评论(0)    收藏  举报