如何在节点js中传递REST数据?

时间:2018-10-15 19:19:25

标签: javascript node.js rest

我试图通过制作一个仅生成段落并被告知要生成多少段落的单页面应用程序来了解节点。

我对使用REST的理解如下:

const ipsum_gen = require("./generator.js");

let routes = app => {
  app.get("/", (req, res) => {
    res.status(200).send("Site is working!");
  });

  app.get("/ipsum", (req, res) => {
    let data = ipsum_gen.getAllParagraphs(1);
    res.status(200).send(data);
  });

  app.get("/ipsum/:num", (req, res) => {
    let data = [];
    let num = req.params.num;
    if (isFinite(num) && num > 0) {
      data = ipsum_gen.getAllParagraphs(num);
      res.status(200).send(data);
    }
    else {
      res.status(400).send({ message: "That is not a number." });
    }
  });
};

不是将数据直接发送到页面以在白色背景上呈现为文本,而是如何将其发送到可以更好地呈现它的html模板?

2 个答案:

答案 0 :(得分:0)

其余节点中的js使用response.json返回数据,例如:

app.get('/api/getAllData', (req, res) => {
    EXAMPLEDATA.getObjects((err, pass) => {
        if(err){
            throw err;
        }
        res.json(pass);
    });
});

并且如上所述,您已经创建了rest api端点,您需要使用ajax调用来使用api,并读取json并使用javascript将其放入HTML页面中。 希望这会有所帮助

答案 1 :(得分:0)

const ipsum_gen = require("./generator.js");

let routes = app => {
  app.get("/", (req, res) => {
    res.status(200).send(`This should be an HTML page, 
       possibly containing a form
       and a JS script to call one of the api routes
       and update the page with the data recieved`);
  });

  app.get("/ipsum", (req, res) => {
    let data = ipsum_gen.getAllParagraphs(1);
    res.status(200).send(data);
  });

  app.get("/ipsum/:num", (req, res) => {
    let data = [];
    let num = req.params.num;
    if (isFinite(num) && num > 0) {
      data = ipsum_gen.getAllParagraphs(num);
      res.status(200).send(data);
    }
    else {
      res.status(400).send({ message: "That is not a number." });
    }
  });
};