Tag: web services

Node.js库如何在特定的URLpath上注册HTTP请求?

我正在编写Node.js中的Web服务库。 我的库需要处理具有特定URL前缀的所有HTTP请求(例如,/ _docs / *)。 我希望人们能够在不改变他们的代码的情况下使用我的库。 API应该看起来像这样: server = http.createServer(function(req, res) { … }); … myLibrary.listen(server, '_docs/'); 要么 server = new http.Server(); myLibrary.listen(server, '_docs/'); server.on('request', function(req, res) { … }); 如果我只是在服务器对象上注册另一个事件处理程序,那么用户的http请求处理程序也会在所有的HTTP请求中被调用。 我的代码将与用户的404处理程序竞争。 Socket.io有一个类似的问题, 他们通过使.listen()函数将所有现有的http请求处理程序移动到一个专用数组来解决它 。 当HTTP请求进来时,如果他们的代码不处理URL,它将调用数组中的侦听器。 但是,据我所知,这在我上面显示的第二个例子中是行不通的。 什么是最好的方式来做到这一点?

Aterisk / Freeswitch通过networking应用程序生成SIP用户

Asterisk / freeswitch集成到运行在PHP,Node.js或任何其他服务器端语言上的Web应用程序,我是非常新的。我想实现的是在Asterisk / Freeswitch conf文件或数据库文件中创build一个新的SIP用户在一个Web应用程序内。 如何在同一台服务器上托pipe的Asterisk / Freeswitch PBX软件上修改/写入configuration文件或SIP数据库?

创build一个用于AJAX的简单Node.js Web服务

我有一个基本的Node.js HTTP服务器设置为每个文档,我试图创build一个非常简单的Web服务,我可以跟Javascript(AJAX)交谈,然后我将连接到Arduino。 这是一个testing,我可能走下去的东西,但事实certificate这很有趣。 无论如何,这里是服务器端的JavaScript: var http = require('http'); var _return = 'Bing Bong'; http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'application/jsonp'}); //do stuff res.end('_return(\'Hello :-)\' + _return)'); }).listen(process.env.VMC_APP_PORT || 1337, null); 这是客户端: function experimentFive(node) { console.log('X5 Func started'); console.log('Calling Node.js service'); var nodeURL = node; $.ajax({ url: nodeURL, dataType: "jsonp", jsonpCallback: "_return", cache: false, timeout: 50000, […]

阻止用户编辑URL以限制对服务器资源的访问

我正在使用node.js并表示提供使用SSLencryption的html文件。 但我注意到,用户可以更改url即。 如果url为https://localhost/index,html ,则为https://localhost/index,html https://localhost/anyother.html如何禁止用户编辑url,以便他们不能访问我的服务器的任何其他html文件。

如何使用Restify增加服务器端的套接字超时?

我使用restify来实现一个node.js服务器。 基本上,服务器每HTTP POST请求运行一个耗时的过程,但不知怎的,套接字被closures,客户端收到这样的错误信息: [Error: socket hang up] code: 'ECONNRESET' 根据错误types,服务器端的套接字肯定是closures的。 有没有什么办法可以在restify的createServer方法中设置来解决这个问题? 编辑:长时间运行的过程是使用Mongoose来运行MongoDB进程。 也许这也可能是套接字挂断是由连接到MongoDB造成的? 如何增加Mongoose的超时? 我发现挂机正好在120秒内发生,所以可能是因为某些默认超时configuration? 提前致谢!

Apache cxf java-first和SOAP模块npm

我已经用它的默认方法部署了一个cxf-jaxws-javafirst maven项目:HelloWorld.sayHi(String text)。 HTTP://本地主机:8080 / prueba / HelloWorld的WSDL 另一方面,我有一个肥皂客户端与肥皂模块Nodejs实施。 var express = require('express') var app = express() //soap module var soap = require('soap'); //url of the wsdl var url = 'http://localhost:8080/prueba/HelloWorld?wsdl'; //variable var args = {arg0: 'friend'}; app.get('/', function (req, res) { soap.createClient(url, function(err, client) { client.sayHi(args, function(err, result) { res.send(result); }); }); }) var […]

这是通过node.js执行MongoDB操作的最佳方式吗?

我已经写了这个代码,我开始连接到我的MongoDB服务器,并在这样的连接我执行Web服务代码。 这是最佳还是安全的方式? 什么是更好的方式来实现呢? var express = require("express"); var mongodb = require("mongodb"); var servidor = new express(); var BSON = mongodb.BSONPure; servidor.use(express.static(__dirname+"/publico")); servidor.use(express.bodyParser()); var cliente_mongodb = mongodb.MongoClient; cliente_mongodb.connect("mongodb://localhost/db_escuela", function(err, db_escuela){ if(err){ console.log("Error de conexion"+err); }else{ console.log("Se ha conectado a la base de datos"); var cl_alumnos = db_escuela.collection("cl_alumnos"); servidor.get("/alumnos",function(peticion, respuesta){ cl_alumnos.find().toArray(function(err,respuesta_db){ respuesta.send(respuesta_db); }); }); servidor.get("/alumnos/:id",function(peticion,respuesta){ var id […]

build立一个Web服务以供多个平台使用 – 我应该使用什么格式?

我们希望创build一个Web服务,为单个数据存储上的无状态数据事务提供function。 该服务将被运行多个潜在环境的应用程序消耗 – 至lesswindows .net,php和java,但可能更多。 用来传递数据的最佳格式是什么? “最好的”我会认为是在消费和强types的内容之间的甜蜜点的格式。 在一端,SOAP告诉你一切你需要知道的服务,但需要在客户端进行大量的处理来parsing。 另一方面,JSON的极简主义格式和易于parsing,但显然客户端需要有一个很好的想法,应该期待什么样的数据。 这些解决scheme之一会比其他解决scheme更理想吗? 还有另一种格式要考虑吗? 作为后续,你可以推荐什么框架来实现服务器端的格式? 我们的服务器操作系统是linux,所以php或java将是首选的解决scheme,但也可以考虑像node.js这样的替代平台。 像.NET中的WCF是很理想的,因为你可以写一次业务逻辑,让表示框架同时以多种格式提供。

使用javascript调用expressjs restful webservice => result总是空的响应

目的: 1)创build一个运行在NodeJsnetworking服务器上的网站。 (expressjs,stylus,jade)+ NodeJS 2)在NodeJsnetworking服务器(expressjs)+ NodeJS上创build一个宁静的web服务 3)网站调用一个宁静的Web服务条目(JavaScript文件) 随着Ubuntuterminal,我开始为网站nodeJs另一个为其余的webservice.Testing平静的web服务(在浏览器中): 地址:本地主机:1337 /酒/ 数据结果是:[{“name”:“新酒”,“年”:“2012”,“_id”:“50e8255197f0b5260f000001”}] testing网站Url:localhost:3000 / 这是我在网站上使用的JavaScript文件,在这里我想调用其余的url localhost:1337 / wines / en获取结果数据。 alert('hello!'); (popup) var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://localhost:1337/wines/'); xhr.onreadystatechange = function () { if (this.status == 200 && this.readyState == 4) { console.log('response: ' + this.responseText); alert("Yes"); } }; xhr.send(); 在terminal,我看到GET被执行: 宁静的docker: GET /葡萄酒/ 200 […]

nodejs xmlrpc错误:错误:XML-RPC错误:从input数据中find多个源模板:

我试图从节点应用程序消耗xmlrpc webservice( 摇头,往下看 ),我遇到了一些问题。 这是我想要发射的有效载荷: <SOAP-ENV:Envelope xmlns:m="urn:ActionWebService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <VmProvisionRequest xmlns="urn:ActionWebService"> <version xsi:type="xsd:string">1.1</version> <templateFields xsi:type="xsd:string">blah blah</templateFields> <vmFields xsi:type="xsd:string">blah blah</vmFields> <requester xsi:type="xsd:string">blah blah</requester> <tags xsi:type="xsd:string"></tags> <options xsi:type="m:VmdbwsSupport..ProvisionOptions"> <values xsi:type="xsd:string"></values> <ems_custom_attributes xsi:type="xsd:string"></ems_custom_attributes> <miq_custom_attributes xsi:type="xsd:string">blah blah</miq_custom_attributes> </options> </VmProvisionRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 但在节点的xmlrpc库中 ,当我在客户端上做一个methodCall时,我只能通过params(一个迭代的数组列表来生成序列化器中的xml) 这是我想要做的: var xmlrpc = require('xmlrpc') var request = '<SOAP-ENV:Envelope xmlns:m="urn:ActionWebService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" […]