后端接口开发: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();
}

浙公网安备 33010602011771号