nodejs发送http,然后如何将回调数据发送到index.ejs

时间:2016-03-24 07:12:17

标签: node.js http

首先,nodejs代码如下

var express = require('express');
var http =  require('http');
var qs = require('querystring');  
var router = express.Router();

/* GET home page. */
exports.index = function(req, res){
    var opt = {  
        method: "POST",  
        host: "localhost",  
        port: 8080,  
        path: "/mongoresume/resumeList.json" 
    };  

    var req = http.request(opt, function (serverFeedback) {  
      if (serverFeedback.statusCode == 200) {  
            var body = "";  
            serverFeedback.on('data', function (data) { body += data; console.log(data);})  
                          .on('end', function () { res.render("index",body);/*res.send(200, body); */});  
        }  
        else {  
            res.send(500, "error");  
        }  
    });  

    req.on('error', function (e) {  
        console.log('problem with request: ' + e.message);  
    });  

  //  req.write(data + "\n");  
    req.end();

};

当我使用像res.send(200, body);这样的普通代码时,它可以接收数据,但我想将数据发送到index.ejs,所以当我修改像res.render("index",body);这样的代码时,它会抛出错误

enter image description here

错误意味着什么?

2 个答案:

答案 0 :(得分:0)

res.render函数的第二个参数应该是一个对象。您正在提供一个字符串(正文变量)。 Express尝试将属性添加到字符串变量,当然这会失败并导致您的错误消息。查看documentation about res.render()

答案 1 :(得分:0)

参数应该是一个对象,而不是这样的主体。试试这个

res.render('index',result:JSON.parse(body)['object name']);