成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Express開發(fā)小說API接口服務(wù)1.0(三)

shixinzhang / 968人閱讀

摘要:使用開發(fā)小說接口服務(wù)三線上訪問地址之前發(fā)現(xiàn)追書神器詳情頁竟然沒有下一章和上一章的返回值,只能自己動手封裝一下。

使用Express開發(fā)小說API接口服務(wù)1.0(三)

線上訪問地址https://api.langpz.com/

之前發(fā)現(xiàn)追書神器API詳情頁竟然沒有下一章和上一章的返回值,只能自己動手封裝一下。

app.js 增加錯誤處理
// catch 404 and forward to error handler
app.use(function (req, res, next) {
    const err = new Error("Not Found");
    err.status = 404;
    next(err);
});

// error handler
app.use(function (err, req, res, next) {
    // set locals, only providing error in development
    res.locals.message = err.message;
    res.locals.error = req.app.get("env") === "development" ? err : {};

    // render the error page
    res.status(err.status || 500);
    res.render("error");
});

這些代碼放到module.exports = app; 上面就可以了。

列表頁增加返回ID

找到routes/chapter.js 29行替換

  res.send(JSON.stringify({ "flag": 1,"id": body._id,  "chapters": body.chapters, "msg": "OK" }));
詳情頁增加上一章和下一章的返回值
let express = require("express");
let request = require("request");
let common = require("../common/common.json"); // 引用公共文件
let router = express.Router();

/** 
  獲取小說文章內(nèi)容
  返回小說文章內(nèi)容
  param link {String} 是小說文章列表接口 chapters[0].link
  http://chapter2.zhuishushenqi.com/chapter/${link}
*/
router.get("/", function (req, res, next) {
    if (!req.query.link) {
        res.send(JSON.stringify({ "flag": 0, "msg": "請傳入link..." }));
    }
    // req.query.link 編碼轉(zhuǎn)義
    let link = encodeURIComponent(req.query.link);
    request.get(`${common.CHAPTER}/chapter/${link}`, function (err, response, body) {
        if (err) {
            res.send(JSON.stringify({ "flag": 0, "msg": "請求出錯了..." }));
        }

        // 解析返回的數(shù)據(jù)
        body = JSON.parse(body);

        if (body.ok){
            // 再次請求列表頁獲取上一頁和下一頁
            if(req.query.id){
                // req.query.id 編碼轉(zhuǎn)義
                let id = encodeURIComponent(req.query.id);
                let n = parseInt(req.query.n);
                if (isNaN(n)){
                    n = 0;
                }

                request.get(`${common.API}/atoc/${id}?view=chapters`, function (err, response, body2) {
                    if (err) {
                        res.send(JSON.stringify({ "flag": 0, "msg": "請求出錯了..." }));
                    }

                    if (body2 == "wrong param"){
                        res.send(JSON.stringify({ "flag": 0, "msg": "傳入錯誤的ID..." }));
                    }else{
                        // 解析返回的數(shù)據(jù)
                        body2 = JSON.parse(body2);
                        // 檢查頁碼是否超過小說的章節(jié)數(shù)
                        if(n > body2.chapters.length - 1){
                            res.send(JSON.stringify({ "flag": 0, "msg": "傳入的頁碼過大" }));
                        }else{
                            // 如果有上一頁或者下一頁就返回link否則返回false
                            let prev,next;
                            body2.chapters[n - 1] ? prev = body2.chapters[n - 1].link : prev = false;
                            body2.chapters[n + 1] ? next = body2.chapters[n + 1].link : next = false;

                            if (body2.chapters.length > 0) {
                                res.send(JSON.stringify({ "flag": 1,"id": id, "chapter": body.chapter, "prev": prev,"next": next, "msg": "OK" }));
                            }
                        }
                    }
                });
            }else{
                res.send(JSON.stringify({ "flag": 1, "chapter": body.chapter, "msg": "OK" }));
            }
            
        }else{
            res.send(JSON.stringify({ "flag": 0, "msg": "傳入link有錯誤" }));
        }
    });
});

module.exports = router;

訪問http://localhost:3000/article?link=http://www.69shu.com/txt/1463...
新增n和id參數(shù)。
n 代表是第幾頁。
id 是書籍ID。

github倉庫訪問地址

https://github.com/lanpangzhi/novel-api

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/103420.html

相關(guān)文章

  • 使用Express開發(fā)小說API接口服務(wù)1.0(二)

    摘要:使用開發(fā)小說接口服務(wù)二線上訪問地址之前完成了首頁和搜索的接口,現(xiàn)在就開始寫剩下的接口。獲取小說源因為追書神器正版源是收費(fèi)加密的,所以只能使用盜版源,所以要封裝一個獲取小說源的接口。小說源接口返回的。版本的開發(fā)就告于段落了。 使用Express開發(fā)小說API接口服務(wù)1.0(二) 線上訪問地址https://api.langpz.com/ 之前完成了首頁和搜索的接口,現(xiàn)在就開始寫剩下的接口...

    Atom 評論0 收藏0
  • 使用Express開發(fā)小說API接口服務(wù)1.0(一)

    摘要:使用開發(fā)小說接口服務(wù)一版本技術(shù)棧使用。接口用追書神器。目前接口設(shè)計有首頁,小說詳情頁,搜索,小說文章列表頁,排行。搜索接口版本的搜索接口只取前條數(shù)據(jù),可以模糊查詢。取前條,并添加圖片鏈接請求出錯了請傳入?yún)?shù)訪問遮天就可以看到返回的數(shù)據(jù)了。 使用Express開發(fā)小說API接口服務(wù)1.0(一) 1.0版本技術(shù)棧使用express-generator、express、request、mor...

    CoffeX 評論0 收藏0
  • vue仿追書神器,vue小說項目源碼

    摘要:一點閱讀器源自追書神器,免費(fèi)使用目前已初步開發(fā)完成項目地址歡迎,,推薦一個之前用文章類閱讀寫的一點閱讀微信小程序一點文章已上線,可以再微信搜索一點文章體驗在線體驗地址點擊這里體驗服務(wù)器太,渲染慢部分效果截圖一點閱讀器優(yōu)勢一點閱讀器追書神 vue-reader 一點閱讀器!API源自追書神器,免費(fèi)使用!目前已初步開發(fā)完成! Github項目地址:https://github.com/An...

    justCoding 評論0 收藏0
  • vue仿追書神器,vue小說項目源碼

    摘要:一點閱讀器源自追書神器,免費(fèi)使用目前已初步開發(fā)完成項目地址歡迎,,推薦一個之前用文章類閱讀寫的一點閱讀微信小程序一點文章已上線,可以再微信搜索一點文章體驗在線體驗地址點擊這里體驗服務(wù)器太,渲染慢部分效果截圖一點閱讀器優(yōu)勢一點閱讀器追書神 vue-reader 一點閱讀器!API源自追書神器,免費(fèi)使用!目前已初步開發(fā)完成! Github項目地址:https://github.com/An...

    happyhuangjinjin 評論0 收藏0
  • vue仿追書神器,vue小說項目源碼

    摘要:一點閱讀器源自追書神器,免費(fèi)使用目前已初步開發(fā)完成項目地址歡迎,,推薦一個之前用文章類閱讀寫的一點閱讀微信小程序一點文章已上線,可以再微信搜索一點文章體驗在線體驗地址點擊這里體驗服務(wù)器太,渲染慢部分效果截圖一點閱讀器優(yōu)勢一點閱讀器追書神 vue-reader 一點閱讀器!API源自追書神器,免費(fèi)使用!目前已初步開發(fā)完成! Github項目地址:https://github.com/An...

    Pocher 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<