Tag: httprequest

对于POST请求,nodejs请求从服务器返回null主体

我使用请求( https://github.com/mikeal/request )从节点发送一个http post请求,然后我得到一个空的主体。 从hurl.it发送的相同请求正确地返回正确的响应。 从同一个nodejs服务器发送到同一服务器的另一个请求也返回正确的正文。 真正令人愤慨的是,这是上周工作,不再在nodejs工作。 我的server.js是: var request = require('request'); request({ uri: 'insert url here; contains sensitive info', method: 'POST', body: 'insert body here; contains sensitive info', followRedirect: true, maxRedirects: 10 }, function(error, response, body) { console.log('body in response is: ' + body); }); 任何人有任何想法如何解决这个问题? 谢谢。

根据要求提供JSON或HTML服务?

我正在使用nodejs,我想要一个统一的处理程序来服务于JSON或HTML基于哪一个被请求从客户端。 到目前为止,我只是简单地传递一个variables在请求体中,我可以在服务之前检查 app.use(function(req, res) { if (req.body.requested=='JSON') res.json(… else res.render(… 但是,而不是在请求正文中传递variables,是否有东西在标题或jQuery.getJSON()和jQuery.get() ,我用来使差异的内在不同之处?

如何在express js中添加'res.addHeader(“Access-Control-Allow-Origin”,“*”)?

在我的应用程序中,我使用angularjs和cordova作为前端,并使用expression式和节点js作为服务器的后端。 我的客户端在http:// localhost:9000上运行,但是,我的express js在http:// localhost:3000上运行 。 我需要从快递API获取数据。 访问时,它说' XMLHttpRequest cannot load http://localhost:3000/data. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. 为此,我需要添加res.addHeader("Access-Control-Allow-Origin", "*") 。 它是从其他域访问一个域。 如何在express js中添加这个头文件? 请帮我解决

如何从节点js中的request.get获取值

下面是我的代码,它向主机78.154.17.70 ,端口8080和path/csrftoken.json的Web服务器发出http请求。 我使用request.get从服务器获取数据。 我能够获取数据,这是以下格式的Json data : { "apiVersion": "1.0", "data": { "csrf": "ajbgajbgjabbjbjbab" } } 我声明了两个variablesvar CSRFTokenValue; 和var respJson; 全球。 在request.get ,我使用这些variables作为: respJson存储parsing数据和CSRFTokenValue存储 “csrf”:“ajbgajbgjabbjbjbab”标记值为“ajbgajbgjabbjbjbab” 意味着CSRFTokenValue将在其中存储“ajbgajbgjabbjbjbab”。 现在,当我loginCSRFTokenValue里面的CSRFTokenValue ,它会给我“ajbgajbgjabbjbjbab”,但是当我在外面login它会给我不确定的 。 我需要CSRFTokenValue在request.post中的quesryString中使用来发布数据。 我不知道如何获得全局的tokenValue? var request = require('request'); var CSRFTokenValue; var respJson; request.get('http://78.154.17.70:8080/csrftoken.json', function (e, res, body){ respJson = JSON.parse(body); CSRFTokenValue = respJson.data.csrf; console.log('GET success:' + CSRFTokenValue); }); console.log('GET […]

如何从Google Cloud Functions发送HTTP请求(nodeJS)

这可能是一个简单的问题,但我是云新function/节点编程,还没有find正确的文件。 如何编写Google云端function,接收HTTP请求,然后向另一个端点发送HTTP请求? 例如,我可以将HTTP触发器发送到我的云端function( https://us-central1-plugin-check-xxxx.cloudfunctions.net/HelloWorldTest )。 后来在这个项目中,我会弄清楚如何实现延迟。 但是接下来我想用新的HTTP请求来响应不同的端点( https://maker.ifttt.com/trigger/arrive/with/key/xxxx )。 我怎么做? exports.helloWorld = function helloWorld(req, res) { // Example input: {"message": "Hello!"} if (req.body.message === undefined) { // This is an error case, as "message" is required. res.status(400).send('No message defined!'); } else { // Everything is okay. console.log(req.body.message); res.status(200).send('Success: ' + req.body.message); // ??? send a […]

使用node.js HTTP,res.end()如何保证socket的连接?

这是node.js的end实现: OutgoingMessage.prototype.end = function(data, encoding) { if (this.finished) { return false; } if (!this._header) { this._implicitHeader(); } if (data && !this._hasBody) { console.error('This type of response MUST NOT have a body. ' + 'Ignoring data passed to end().'); data = false; } var ret; var hot = this._headerSent === false && typeof(data) === 'string' && […]

了解Express.js中间件的优先级

我正在阅读Express.js API参考中的两个示例,但我没有得到它们。 实例1 现在假设你想忽略对静态文件的logging请求,但是继续logginglogger()之后定义的路由和中间件。 你可以简单地移动它上面的static(): app.use(express.static(__dirname + '/public')); app.use(logger()); // other middleware 这是如何导致对静态文件的请求不被logging的? 是不是所有的中间件都是按照顺序执行的? 实例2 另一个具体例子是从多个目录提供文件,优先于“./public”而不是其他文件: app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/files')); app.use(express.static(__dirname + '/uploads')); 我怀疑,例如“/js/stuff.js”这样的请求,第一个中间件会检查“/public/js/stuff.js”是否存在。 如果是这样的话,这个中间件就处理这个请求,而后续的中间件都不会被执行 (类似于早期的返回)。 如果这条path不存在,则这个中间件将请求传递给下一个中间件。 它是否正确? 请解释两个例子!

在同一位置区分请求参数?

有没有办法在expressjs中的相同位置区分请求参数? 例如,有没有办法有: router.get('/pages/:id', function(req,res){ var id=req.params.id; api.getPagebyID(id, function(err,pageData){ if (err) console.log(err); console.log(pageData); }); }); 并有: router.get('/pages/:name', function(req,res){ var name=req.params.name; api.getPagebyName(name, function(err,pageData){ if (err) console.log(err); console.log(pageData); }); });

Node.js http请求结束/closures事件不会触发

我在节点0.10中有以下内容 var postData = querystring.stringify(data) var options = { host: 'localhost', port: 80, path: '/rest/messages/participant?format=json', method: 'POST', json: true, headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': postData.length } }; var req = http.request(options, function(res) { res.setEncoding('utf8'); res.on('data', function (chunk) { // console.log("body: " + chunk); }); }); req.on('end', function(){ console.log('ended'); }); req.on("close", function(){ console.log("closed"); io.sockets.emit('added', data); }); […]

在REQUEST nodejs中返回json体

我正在使用request模块对URL进行HTTP GET请求以获得JSON响应。 但是,我的function没有返回响应的正文。 有人可以帮我这个吗? 这是我的代码: router.get('/:id', function(req, res) { var body= getJson(req.params.id); res.send(body); }); 这是我的getJson函数: function getJson(myid){ // Set the headers var headers = { 'User-Agent': 'Super Agent/0.0.1', 'Content-Type': 'application/x-www-form-urlencoded' } // Configure the request var options = { url: 'http://www.XXXXXX.com/api/get_product.php', method: 'GET', headers: headers, qs: {'id': myid} } // Start the request request(options, function […]