91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-25 03:32:07 來源:腳本之家 閱讀:352 作者:鯨冬香 欄目:web開發

本周寫實驗,需要提供簡單的后臺接口對數據庫進行增刪改查,以前寫后臺只用過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.js
server now listening at 3000 port

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

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

連接數據庫

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

$ npm install mysql
npm WARN test@1.0.0 No description
npm WARN test@1.0.0 No repository field.

+ mysql@2.17.1
added 9 packages from 14 contributors and audited 134 packages in 4.145s
found 0 vulnerabilities

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

//db.js
var 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');
});

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

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

$ npm install body-parser

使用bodyParser來配置app:

//index.js
var 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');
});

總結

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

藁城市| 和平县| 昭平县| 龙陵县| 连州市| 同江市| 雷波县| 卢氏县| 深泽县| 化州市| 富民县| 怀宁县| 三亚市| 迁安市| 安溪县| 衡东县| 柳州市| 台南县| 舒兰市| 新巴尔虎右旗| 扬州市| 都昌县| 昆山市| 商丘市| 江津市| 松原市| 什邡市| 栾川县| 安平县| 武定县| 阳新县| 灵台县| 丹阳市| 巫山县| 马公市| 泗洪县| 常宁市| 龙陵县| 赫章县| 墨竹工卡县| 喀喇沁旗|