摘要:平時開發前端應用,如果沒有現成的后端接口調試,又要保證前端進度,該怎么辦呢,當然辦法還是很多的,很多大牛都分享過很多經驗,我也來說說我常用的方法。
平時開發前端應用,如果沒有現成的后端接口調試,又要保證前端進度,該怎么辦呢,當然辦法還是很多的,很多大牛都分享過很多經驗,我也來說說我常用的方法。
把本地數據放到程序指定目錄,發起http請求時候,用get請求到這個目錄中指定文件
以jquery的ajax為例:
postRequest: function(model, async) { if(!model) { return null; } if(Common.urlParams.d) { url = "../data/" + model.method + ".json"; model.type = "GET"; } else { url = service-api-path + model.method; //service-api-path是后端接口公共地址 } return $.ajax({ async: (async == undefined || async) ? true : false, url: url, type: model.type, dataType: "json", timeout: 30000, data: model.params, beforeSend: function(x, settings) { //todo.. }, complete: function(x, status) { //todo.. }, error: function(x, h, r) { //todo } }); }
這個例子是在訪問頁面的時候在鏈接中添加一個d參數,參數值任意,就可以調用本地數據,這個方法只能讀取文件,內容是比較死板的,下面就說說另外一種方法
用nodejs弄個web服務器是灰常簡單的,這也是很多開發者都會用nodejs做個中轉服務,下面介紹下怎么搭建測試服務
app.js
var path = require("path"), express = require("express"), bodyParser = require("body-parser"), cookieParser = require("cookie-parser"), autoRoutes = require("express-auto-routes"), server = require("./server"); var app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); var routes = autoRoutes(app); app.use(server); app.use(function(req, res, next) { res.status(404); next({ _code: 404, _msg: "Page not found" }); }); app.use(function(err, req, res, next) { console.error(err); if (err._status) res.status(err._status); res.json({ _code: err._code || 1, _msg: err._msg || err }); }); var server; if (!module.parent) { var PORT = 8989; console.log("[INFO] Msg board RESTful API listening at localhost:%s", PORT); server = app.listen(PORT); } else { module.exports = app; }
server.js
var dbm = require("./dbm"), _ = require("lodash"); module.exports = function(req, res, next) { let data = [], params = {}, url = req.originalUrl, db = new dbm(`./db/${url.slice(url.lastIndexOf("/") + 1, url.length)}.json`).read() data = _filter(db, req.body) res.json({ timestamp: new Date().getTime(), msg: "查詢成功", isSuccess: 0, data: data }) } const _filter = (db, obj) => { if (!obj) return return _.filter(db, o => { return obj.dateTime == o.dateTime }) }
dbm.js
var fs = require("fs"), path = require("path"); function dbm(relativePath) { this.db = path.resolve(__dirname, relativePath); } dbm.prototype._isAvailable = function() { return fs.existsSync(this.db); }; dbm.prototype.read = function() { if (!this._isAvailable()) return null; var contentInStr = fs.readFileSync(this.db, "utf-8"), content; try { content = JSON.parse(contentInStr); } catch (e) { //this.delDb(); console.error("[ERR] JSON.parse failed, deleted " + this.db); } return content || null; }; dbm.prototype.save = function(data) { var stringToSave = JSON.stringify(data); if (!stringToSave) return; fs.writeFileSync(this.db, stringToSave, "utf-8"); }; dbm.prototype.delDb = function() { try { fs.unlinkSync(this.db); } catch (e) { console.error("DB file does not exist"); } }; module.exports = dbm;
demo.json
[{ "name": "jack", "age": 18, "id": "124443", "dateTime": "20170101" }, { "name": "tom", "age": 21, "id": "1232323", "dateTime": "20170103" }, { "name": "alix", "age": 22, "id": "123232323", "dateTime": "20170102" } ]
致此,服務器基本完事了,json文件存放內容依照mongodb或者按照mysql數據記錄來就行了,引入lodash庫操縱數組完成增刪改查完全不在話下,當然也可以拓展成為真正的服務器嘛,畢竟很多項目直接就是nodejs開發的服務端
完整示例:https://github.com/dawnyu/node-simple-server.git
原發:http://dawns.me/2017/05/05/%E7%94%A8nodejs+express%E6%90%AD%E5%BB%BA%E5%89%8D%E7%AB%AF%E6%B5%8B%E8%AF%95%E6%9C%8D%E5%8A%A1%E7%AB%AF/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/50970.html
摘要:平時開發前端應用,如果沒有現成的后端接口調試,又要保證前端進度,該怎么辦呢,當然辦法還是很多的,很多大牛都分享過很多經驗,我也來說說我常用的方法。 平時開發前端應用,如果沒有現成的后端接口調試,又要保證前端進度,該怎么辦呢,當然辦法還是很多的,很多大牛都分享過很多經驗,我也來說說我常用的方法。 請求本地數據文件 把本地數據放到程序指定目錄,發起http請求時候,用get請求到這個目錄中...
摘要:把文件上傳路徑指定到然后用當前日期和文件名命名上傳過來的文件。后端利用建立服務器,利用中間件指定文件路徑。利用這個前端和后端技術,我們基本上就可以做出一個圖片上傳存儲的基本網站核心。 前幾天看了騰訊云社區的一個文件上傳的文章文件上傳那些事兒,大體上講了以下h5中圖片上傳的幾個核心原理,但是沒有后端接受的服務器代碼,沒法做測試。也沒有具體的一個實例都是一些基本的原理片段,并且ui界面也不...
摘要:沒有耐心閱讀的同學,可以直接前往學習全棧最后一公里。我下面會羅列一些,我自己錄制過的一些項目,或者其他的我覺得可以按照這個路線繼續深入學習的項目資源。 showImg(https://segmentfault.com/img/bVMlke?w=833&h=410); 本文技術軟文,閱讀需謹慎,長約 7000 字,通讀需 5 分鐘 大家好,我是 Scott,本文通過提供給大家學習的方法,...
閱讀 3611·2021-11-15 11:38
閱讀 2807·2021-11-11 16:55
閱讀 2558·2021-11-08 13:22
閱讀 2633·2021-11-02 14:45
閱讀 1317·2021-09-28 09:35
閱讀 2590·2021-09-10 10:50
閱讀 468·2019-08-30 15:44
閱讀 2783·2019-08-29 17:06