Node.js HTML响应正文

时间:2017-09-21 18:04:43

标签: html angularjs node.js http-post

我正在使用以下代码将一些JSON数据发布到网址,作为回应我正在获取HTML网页。

var request = require('request');
request.post({
     url: "URL OF A WEBSITE",
     headers: {
        "Content-Type": "application/json"
     },
     body: {
       my_json_obj
     },
     json:true
}, function(error, response, body){
   console.log(error);
   console.log(JSON.stringify(response));
   console.log(body);
});

此代码正常运行我在body标记中获取了一个HTML页面。 我想在浏览器中加载该HTML页面。我应该怎么做,我知道这是一个非常基本的问题,但我对node.js很新,有人请帮帮我吗?

2 个答案:

答案 0 :(得分:0)

关注Express "Hello World" example并在路由处理程序中使用您的请求调用:

/*jslint node:true, esversion:6*/

"use strict";

const request = require("request"),
    express = require("express"),
    app = express();

let my_json_obj = {},
    URL_OF_WEBSITE = "http://www.google.com";

app.get("/", function (req, res) {
    request.post({
        url: URL_OF_WEBSITE,
        headers: {
            "Content-Type": "application/json"
        },
        body: {
            my_json_obj
        },
        json: true
    }, function (error, response, body) {
        if (error) {
            console.log(error);
            return res.sendStatus(404);
        }
        console.log(JSON.stringify(response));
        console.log(body);
        res.send(body);
    });
});

app.listen(3000, function () {
    console.log("Example app listening on port 3000!");
});

node.js确实有自己制作服务器的方式,但为了简洁起见,我建议使用Express。

答案 1 :(得分:0)

您使用的是Express js吗?使用Node js应用程序会使事情变得容易多了。

查看Express路由: https://medium.com/javascript-scene/introduction-to-node-express-90c431f9e6fd

您可以使用以下命令在终端中创建Express样板:

express yourappname

然后你可以把你的html / css / js文件放在express-app中 - >您刚刚生成的'public'文件夹。

之后,您可以通过以下操作在app.js中创建路线:

// exampledomain.com/
// Loading the file index.html when user navigates to '/'
app.get('/', function(req, res){

    res.sendFile(path.join(__dirname + '/public/index.html'));

});

// or

// exampledomain.com/getFileURL
// POST request (from your ajax) to '/getFileURL'
// which will then load the about.html file into the browser
app.post('/getFileURL', function(req, res){

    // Do more JSON/data handling & Node js stuff here then
    // send something back

    res.sendFile(path.join(__dirname + '/public/about.html'));

});

Express js还有许多有用的功能,但我认为路由是你现在所需要的。

P.S。使用Node js时需要考虑的非常有用的工具:

  • 邮差(测试ajax / express / Nodejs路由和响应)
  • Nodemon(保存时自动启动Nodejs服务器)