【问题标题】:How to construct api from json file nodejs如何从json文件nodejs构造api
【发布时间】:2020-09-03 12:30:20
【问题描述】:

我正在尝试使用 JSON 文件中的节点 js 创建 API。

我从 JSON 文件创建了一个来自 Nodejs 的简单获取请求,我试图从 json 文件中删除不需要的数据并从该 json 文件构造新的响应

我的代码如下:

var express = require("express");
const bodyParser = require('body-parser');

var app = express();
app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
  });
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const fs = require('fs');


const Test_Data = './data/testData.json';


app.get('/all', (req, res) => {
  fs.readFile(Test_Data, 'utf8', (err, data) => {
      if (err) {
          throw err;
      }

      res.send(JSON.parse(data));
  });
});

// finally, launch our server on port 3001.
const server = app.listen(3000, () => {
    console.log('listening on port %s...', server.address().port);
});

我的testData.json如下

[
    {
       "web-scraper-order": "1588668196-10",
       "web-scraper-start-url": "https://udemycoupon.learnviral.com/coupon-category/development/page/266",
       "pagenation": "",
       "pagenation-href": "",
       "courseid": "Redeem Offer",
       "courseidhref": "https://www.udemy.com/course/amazon-alexa-101-publishing-alexa-skills-without-coding/"
    },
    {
       "web-scraper-order": "1588668196-12",
       "web-scraper-start-url": "https://udemycoupon.learnviral.com/coupon-category/development/page/266",
       "pagenation": "",
       "pagenation-href": "",
       "courseid": "Redeem Offer",
       "courseidhref": "https://www.udemy.com/course/learn-complete-oracle-apps-r12-technical-training/?couponCode=TTROAP"
    }
]

在这个 testData.json 文件中我得到了不需要的数据

我正在尝试如下创建 JSON 响应

[
  {
     "id": "1",
     "courseTitle": "amazon alexa 101 publishing alexa skills without coding",
     "courseidhref": "https://www.udemy.com/course/amazon-alexa-101-publishing-alexa-skills-without-coding/"
  },
  {
     "id": "2",
     "courseTitle": "learn complete oracle apps r12 technical training",
     "courseidhref": "https://www.udemy.com/course/learn-complete-oracle-apps-r12-technical-training/?couponCode=TTROAP"
  }
]

我正在尝试从 courseidhref

创建 courseTitle

我已经完成了单独的代码

var url = require('url');
var adr ='https://www.udemy.com/course/technology-strategy-success/?couponCode=05DISC2020';
var q = url.parse(adr, true);
var data = q.pathname.replace("/course/", '');
var output = data.replace("/", '');
console.log(output);

如何结合这两个代码从 JSON 文件构造一个 json 响应?

【问题讨论】:

    标签: node.js json angular api express


    【解决方案1】:
    let resData = [
        {
           "web-scraper-order": "1588668196-10",
           "web-scraper-start-url": "https://udemycoupon.learnviral.com/coupon-category/development/page/266",
           "pagenation": "",
           "pagenation-href": "",
           "courseid": "Redeem Offer",
           "courseidhref": "https://www.udemy.com/course/amazon-alexa-101-publishing-alexa-skills-without-coding/"
        },
        {
           "web-scraper-order": "1588668196-12",
           "web-scraper-start-url": "https://udemycoupon.learnviral.com/coupon-category/development/page/266",
           "pagenation": "",
           "pagenation-href": "",
           "courseid": "Redeem Offer",
           "courseidhref": "https://www.udemy.com/course/learn-complete-oracle-apps-r12-technical-training/?couponCode=TTROAP"
        }
    ] ;
    
    let modifiedData = resData.map((val,ind)=>(
    {
    id : ind,
    courseidhref:val.courseidhref,
    courseTitle : val.courseidhref.split('?')[0].split('/').reverse()[1]
    }
    ));
    

    output

    【讨论】:

    • courseTitle : val.courseidhref.replace('-', ' ').split('?')[0].split('/').reverse()[1] 我试过替换课程 ID 中的 (-),但仅从第一个单词中删除 courseTitle: 'learn complete-oracle-apps-r12-technical-training'
    • val.courseidhref.replace(/-/g, ' ').split('?')[0].split('/').reverse()[1] 对全局使用正则表达式搜索 ''-' 字符
    猜你喜欢
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多