Articles of http

Node.js打印控制台输出两次

我试图创build一个简单的节点js服务器打印“新客户端”,当任何一个打开服务器的URL。 这是我的代码 var http = require('http'); var server = http.createServer(); server.on('request', function(req, res){ res.end('hello world'); console.log('new client'); }); server.listen(8080); 但是当我打开http://localhost:8080控制台输出“新客户端”两次,它应该是一行,这是正常的?

使用Node的http.get获取UTF-8 html内容

我试图拉一个给定的url的HTML内容和原始内容编码是utf-8。 我得到的页面的HTML,但文本白色的HTML元素返回不良格式(问号)。 这就是我所做的: var parsedPath = url.parse(path); var options = { host: parsedPath.host, path: parsedPath.path, headers: { 'Accept-Charset' : 'utf-8', } } http.get(options, function (res) { var data = ""; res.on('data', function (chunk) { data += chunk; }); res.on("end", function () { console.log(data); }); }).on("error", function () { callback(null); }); 我如何执行返回的数据的编码? 谢谢

KOA中的POST请求未定义请求主体

我是nodejs的初学者。 我正在尝试创build一个使用koa框架来处理HTTP请求的HTTP服务器。 以下是我的服务器的代码。 app.use(function * (next){ var ctx = this; var resource = url.parse(ctx.request.url, true, true).pathname; switch(resource) { case '/': resource = config.app.root + '/dist/index.html'; ctx.type = mime.lookup(resource); ctx.body = fs.readFileSync(resource, 'utf-8'); ctx.response.set('Access-Control-Allow-Origin', '*'); break; case '/fudge/contact': console.log('============================'); console.log(ctx.request); // no body console.log('============================'); console.log(ctx.req); // no body console.log('============================'); console.log(ctx.request.body) // is undefined break; default: resource […]

request.body vs request.params vs request.query

我有一个客户端的JS文件,它具有: agent = require('superagent'); request = agent.get(url); 然后我有类似的东西 request.get(url) //or request.post(url) request.end( function( err, results ) { resultCallback( err, results, callback ); } ); 在后端节点端,我有request.body和request.params和一些有request.query 身体,参数和查询有什么区别?

在Node.JS中获取http发布表单数据

嘿,我试图发送请求使用快递和节点,这里是我的代码。 的index.html <html> <head> <title>Test</title> </head> <body> <form action="/form" method="POST" enctype="multipart/form-data"> <input type="text" name="imagename"></input> <input type="submit" name="submit" value="submit"></input> </form> </body> </html> 我的app.js文件如下: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.post('/form', function(req, res){ res.setHeader('Content-Type', 'application/json'); setTimeout(function(){ res.send(JSON.stringify({ imagename: req.body.imagename || null })); }, 1000); }); 现在我应该得到的输出为imagename://值的forms添加如果true或否则为空。 […]

Firebase云function与批量更新不一致

我有我的firebase云function,我在这里调用我的外部api终点。 const functions = require('firebase-functions'); var admin = require("firebase-admin"); admin.initializeApp(functions.config().firebase); var request = require('request'); var moment = require('moment'); var rp = require('request-promise'); var db = admin.database(); exports.onCheckIn = functions.database.ref('/news/{newsId}/{entryId}') .onCreate(event => { console.log("Event Triggered"); var eventSnapshot = event.data.val(); request.post({ url: 'http://MyCustomURL/endpoint/', form: { data: eventSnapshot.data } }, function(error, response, body){ console.log(response); }); }) 我正在使用Blaze的计划,这是完全正常的。 但问题是,当我创build批量数据(大约50到100个条目)时,对我的自定义url的HTTP请求无法正常工作。一个或两个HTTP请求正在被跳过。 […]

将客户端路由到node.js中的外部站点?

这可能是愚蠢的,或者是不可能的,但是在我看来这是值得一提的。 原因是因为我试图演示一个快速和肮脏(笑)缩短url的应用程序。 app.get('/link/:key', function(req, res){ client.get(req.params.key, function(err, reply){ if(client.get(reply)){ // route to reply here } else{ res.render('index', { link: null }); } }); }); 如果可能,我将如何执行该路线?

如何在Node.js中接受POST数据

我正在使用NowJS向使用NowJS客户端发送通知,但是我需要在通知中发送的数据必须来自我的数据库。 由于我使用的是Django后端,我可以向我的Node.js服务器发送HTTP请求并发送所需的数据。 但是我需要能够使用Node.js来接受这些数据。 我怎样才能做到这一点?

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); }); […]

为什么multipart不会产生closures事件

嗨,我不会处理上传stream自己没有接触磁盘驱动器。 所以,我的自然select是多方面的模块。 我采取了一般的例子,并根据https://npmjs.org/package/multiparty页面的说明我把form.parse改为非callback请求。 在这种情况下,磁盘将不会被触摸。 我的代码如下所示: multiparty = require("multiparty") http = require("http") util = require("util") # show a file upload form http.createServer((req, res) -> if req.url is "/upload" and req.method is "POST" form = new multiparty.Form() form.on 'error', (err) -> console.log "Error received #{err}" form.on 'aborted', -> console.log "Aborted" form.on 'part', (part) -> console.log "Part" form.on […]