Articles of http

在不改变数据库的情况下testingPOST到API的策略

我正在使用jasmine-node来testing我的API,并且它对我的GET路由非常有用。 现在,但是,我需要testing一些职位,我不知道如何去改变我的数据库。 我以为有一个想法就是在每个规范的最后重置我改变的任何价值。 这是合理的还是有更好的方法去testingPOST请求到我的API?

在不同的端口之间共享Cookie

我有一个应用程序1(C#)托pipe在端口:8030和应用程序2(nodejs)托pipe在端口:3030。 两者都在本地主机上。 请求工作stream程如下: 浏览器向应用程序1发送请求 应用程序1发回一些cookie 稍后在浏览器上发送请求到应用程序2 ^问题是最后一步,cookies不包含在请求中。 我已经尝试/理解的事情: 我知道这是一个同源策略限制,并且由于不同的端口号,浏览器将它们视为不同的域。 在应用程序1(它使用System.Web.HttpCookie)我试图设置域为端口特定(“127.0.0.1:3030”),但似乎浏览器不接受或忽略它。 //c# code var testCookie1 = new HttpCookie("Test", "testValue"); testCookie1.Domain = "127.0.0.1:3030"; testCookie1.Path = "/"; testCookie1.Expires = DateTime.Now.AddDays(1); Response.SetCookie(testCookie1); var testCookie2 = new HttpCookie("Test2", "testValue2"); testCookie2.Domain = "127.0.0.1"; testCookie2.Path = "/"; testCookie2.Expires = DateTime.Now.AddDays(1); Response.SetCookie(testCookie2); 服务器发送一个附有端口号的cookie,但浏览器似乎忽略了它。 这里是我的阿贾克斯调用: var request = $.ajax({ url: 'http://127.0.0.1:3030/SomeTask', type: 'POST', crossDomain: […]

Node.js HTTP / NET – 连接和请求之间的区别

这个问题涉及到tcp / ip协议的一般概念,对此已经有了很好的答案,但是我希望能够深入了解一下node.js http / net库的特性。 节点http服务器实例允许为两种types的事件,“请求”事件和“连接”事件注册callback。 后者是从networking库inheritance而来的,同时还有一个字段“_connections”,用于统计服务器当前拥有的并发连接数。 现在,在我看来,由于http是一个无状态协议,所以请求和连接事件之间应该有一个1-1的对应关系,但事实并非如此。 当我在debugging器中通过一个简单的“hello-world”服务器时,发现请求事件的数量超过了连接事件的数量。 我还看到,即使没有对服务器进行调用(并且进程没有暂停),.connections字段也不会被清零。 为什么请求数量不等于连接数量,为什么服务器在最后一次调用response.end()(响应缓冲区应该被刷新并且连接结束?)之后保持连接打开状态? 另外,一个http服务器的并发连接数量(对keep-alive没有任何影响)如何高于1? 不要求基本上在sockets上排队,并逐个处理? 我明白Node是asynchronous的,但我也认为它是以单线程方式运行的。 提前致谢!

Flurl.Http自定义错误

我正在做一个客户端请求到服务器的应用程序。 服务器使用flurl.Http编写在node.js和.NET客户端。 当服务器上的请求失败时,创build自定义错误消息始终是有用的。 像这样的东西: request.respond(500, { message: "targetid is mandatory" }); 但是,这会在客户端调用FlurlHttpException,并且响应中的JSON信息会丢失。 如果从服务器收到非成功的响应代码,我怎样才能收到这个JSON信息?

如何确定Node.js服务器响应是否停止?

我怎样才能确定server.HttpResponse停止,而不听“结束”或“closures”事件? 我想要达到的是这样的: http.createServer(function (request, response) { var foo; // my event emitting object // … something compilated happens here … foo.onSomeEvent(function () { if (response.hasEnded) { // do something } }); });

Angular 2 SimpleChanges Object在第一个npm开始时抛出错误

在我的angular2应用程序中有一个组件,其中包含一个对象数组,将所选(单击)的对象传递给它的直接子组件。 这会显示更详细的数据。 我正在使用“SimpleChanges”function来观察这个子组件,如果给定的对象改变成另一个http请求来从数据库中获取相关的注释。 如果我尝试用npm构build它,我会得到一个错误,并说: app / displayEntry.component.ts(23,41):错误TS2339:types'SimpleChanges'上不存在属性'entry' 如果我只是评论这部分,启动npm,并最终把它放在那里,并保存它,没有问题了(没有错误,它的工作原理)。 我的问题是,是否有办法解决这个问题,这会导致什么麻烦,以后我不能预见,还是应该忽略它? 谢谢你的帮助 父组件: import { Component, OnInit } from '@angular/core'; import { entry } from './Objekte/entry'; import { entryService } from './entry.service' @Component({ templateUrl: 'app/Html_Templates/displayLastEntrys.template.html' }) export class displayLastEntrys implements OnInit{ public entrys : entry[]; private entryChoosen: boolean; private ChoosenEntry : entry; constructor ( private entryservice : […]

Nodejs http在超时或错误时重试

我试图在超时或错误时自动重试HTTP请求。 目前我的代码如下所示: var req = http.get(url, doStuff) .on('error', retry) .setTimeout(10000, retry); 但是,单个请求有时会触发“出错”和“超时”事件。 什么是更好的实施重试的方式?

端口3000在Express应用程序中的意义

我注意到Express.js应用程序的几乎所有示例都使用端口3000作为HTTP服务器的默认侦听端口。 这是因为它是一个很less使用的端口,或者是否有任何其他原因的端口号? 如果我想在本地机器上并排运行多个应用程序,使用像3000,3001,3002等端口是不是很好? (我理解,理想情况下,你会让系统分配端口,这只是一个简单的问题,为什么3000似乎是一个传统的任务。)

对Node.js不支持HTTP方法的HTTP响应?

一般而言,这对于HTTP更具体,但是我使用Node.js作为我的平台。 在HTTP服务器上处理不被接受的HTTP方法时,最好的办法是什么? 目前,我支持PUT和GET,但不支持POST。 如果发出POST请求,我应该返回一个403还是405?

Node.js将响应对象句柄的句柄传递给subprocess

我有一个http服务器和分叉subprocess。 我希望父级接收请求并使用worker.send传递给分叉进程。 并且工作人员应该能够使用相同的响应对象处理并将响应发送回请求者。 我尝试发送worker.send的第二个参数中的响应对象,但它给出错误This handle type can't be sent var child_process = require('child_process'); var worker = child_process.fork(filename); http.createServer(function (req, res) { worker.send({ 'event': 'start' }, res); // send response object }).listen(4000); 我检查了child_process.js文件,它说如果它不属于某些types,它会抛出错误。 我想知道是否有其他选项可以将响应对象发送给分叉的孩子。 编辑: 好的,这是我发现的,我只是改变了以下 // Instead of // worker.send({ 'event': 'start' }, res); worker.send({ 'event': 'start' }, res.socket); 分叉的进程能够调用write的处理程序。 这是对的吗? 我可以用这种方式吗? 或者在一些等等条件下会有什么暗示?