国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

用js簡單提供增刪改查接口

2019-11-19 11:36:05
字體:
來源:轉載
供稿:網友

本周寫實驗,需要提供簡單的后臺接口對數據庫進行增刪改查,以前寫后臺只用過php和java,因為比較容易,用js寫的也比較快,所以這次想用js實現簡單的增刪改查接口。

初始化

  • 需要工具:nodejs
  • 依賴:express,mysql,body-parser(這些都是npm的包)

為了能夠解析js,需要下載nodejs,下載完nodejs,創建一個文件夾,使用npm init初始化,除了填寫名字,一路確定下去,在文件夾下就會多出一個package.json文件.

// package.json{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo /"Error: no test specified/" && exit 1" }, "author": "", "license": "ISC"}

為了接受并處理http請求,需要引入express這個包,在根目錄下使用這個命令:

$ npm install express

此時就引入了express這個包,創建一個index.js文件到根目錄下,內容:

var express = require('express');var app = express();app.get('/', function(req, res) { res.send('hello world!');});app.listen(3000, function() { console.log('server now listening at 3000 port');});

打開終端,使用nodejs編譯index.js,并且打開瀏覽器輸入localhost:3000就能看到hello world!了:

$ node index.jsserver now listening at 3000 port

這說明我們已經監聽了3000端口并且可以用js來處理http請求了.

連接數據庫

我使用的是mysql數據庫,為了方便操作數據庫,引入mysql這個包:

$ npm install mysqlnpm WARN test@1.0.0 No descriptionnpm WARN test@1.0.0 No repository field.+ mysql@2.17.1added 9 packages from 14 contributors and audited 134 packages in 4.145sfound 0 vulnerabilities

在index.js同路徑下創建一個db.js專門用來處理數據庫連接問題:

//db.jsvar mysql = require('mysql');var pool = mysql.createPool({ //連接信息 host: "localhost", user: "root", password: "", database: "c#learn", port: "3306"});var sql = {  insert:'INSERT INTO teacher(name, username, email, sex) VALUES(?,?,?,?)',     update:'update teacher set name=?, username=?, email=?, sex=? where id=?',  delete: 'delete from teacher where id=?',  queryById: 'select * from teacher where id=?',  queryAll: 'select * from teacher'};function query(sql, data, callback) { pool.getConnection(function(err, connection) {  connection.query(sql, data, function(err, rows) {  callback(err, rows);  connection.release(); //釋放連接 }); });}exports.query = query;exports.sql = sql;

配置數據庫信息獲得pool對象,就可以用pool對象來對數據庫進行操作,在配置sql語句,將查詢方法和sql語句導出給其他模塊調用.

提供后臺接口

在index.js導入db.js,并且將http請求和數據庫操作對接:

var express = require('express');var app = express();var db = require('./db.js');app.get('/', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); db.query(db.sql.queryAll, [], function(err, rows) {  res.send(JSON.stringify(rows)); });});這時再訪問localhost:3000就能看我們teacher表中所有的記錄了。app.listen(3000, function() { console.log('server now listening at 3000 port');});


另外,為了讀取post和put里的body信息,我們需要body-parser這個包:

$ npm install body-parser

使用bodyParser來配置app:

//index.jsvar express = require('express');var db = require('./db.js');var app = express();var bodyParser = require('body-parser');app.use(bodyParser.json());

這時就可以用req.body讀取請求體了.

完整代碼:

var express = require('express');var db = require('./db.js');var app = express();var bodyParser = require('body-parser');app.use(bodyParser.json());app.get('/', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); db.query(db.sql.queryAll, [], function(err, rows) {  console.log('err', err, 'rows', rows);  res.send(JSON.stringify(rows)); });});app.get('/:id', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); db.query(db.sql.queryById, [req.params.id], function(err, rows) {  res.send(JSON.stringify(rows)); });});app.post('', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); console.log(req.body.name); var teacher = req.body; db.query(db.sql.insert, [teacher.name, teacher.username, teacher.email, teacher.sex], function(err, rows) {  if (err) {   res.status(500);   res.send('insert error');  } else {   res.status(200);   res.send('insert success');  } });});app.put('/:id', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); var teacher = req.body; var array = [teacher.name, teacher.username, teacher.email, teacher.sex, req.params.id]; db.query(db.sql.update, array, function(err, rows) {  if (err) {   res.status(500);   res.send('update error');  } else {   res.status(200);   res.send('update success');  } });});app.delete('/:id', function(req, res) { res.header("Access-Control-Allow-Origin", "*"); db.query(db.sql.delete, [req.params.id], function(err, rows) {  if (err) {   res.status(500);   res.send('delete error');  } else {   res.status(200);   res.send('delete success');  } });});app.listen(3000, function() { console.log('server now listening at 3000 port');});

總結

感覺算是理解了語言只是工具這句話.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安丘市| 海兴县| 郸城县| 钟祥市| 会理县| 墨脱县| 永清县| 崇阳县| 布拖县| 油尖旺区| 梁山县| 渭南市| 铜川市| 临洮县| 太白县| 苍南县| 涿鹿县| 威信县| 土默特左旗| 玉树县| 清远市| 承德市| 克山县| 通山县| 山东省| 高陵县| 广昌县| 洛阳市| 瑞丽市| 承德县| 四川省| 张家界市| 贡山| 资源县| 禹城市| 乐亭县| 恭城| 建平县| 黑山县| 平果县| 莱州市|