Tag: restify

如何用restify.js处理深层复杂的数据结构

我已经看到了Restify的例子,其中所有的端点位于root:/ users,/ data等。我知道可以像这样实现嵌套: server.get('/users/:user/data/:id', returnData); 而req.paramsvariables将具有所有的请求参数。 例: { user: '45', id: '80' } 这似乎工作正常,如果我的应用程序有几个端点,但如果我有一个深度和分支的数据结构,我想通过REST API公开? 就像是: { stuff: { points: { colors: { shinyThings: {}, dullThings: {} } }, ships: { enterprises: {}, starDestroyers: {} } }, things: {}, } 不得不手写所有这些端点的path似乎并不正确。 我结束了很多的path定义和这样的东西: server.put('/stuff/:stuff/points/:points/colors/:colors/shinyThings/:shinyThings', returnShinyThing); Restify有没有更简单的方法?

req.originalUrl没有设置restify(连接会话中间件需要)

当我尝试使用连接会话中间件使用restify时,出现错误。 会话中间件期望req.originalUrl但restify不设置该属性。 (它只设置req.url)这会导致会话代码中的exception。 有没有解决方法? 谢谢Sharath

Nodejs – 是否有任何模块存在类似于nodejs中的请求模块?

我想从节点服务器进行restAPI调用。 我目前正在请求模块。 你会build议任何其他最好的模块REST调用(get / post)生产实践在nodejs? 问候,拉姆

在节点应用程序中使用restify时configuration域名而不是IP地址

我正在使用restify模块为我的应用程序生成REST API。 我想知道如何在这段代码中直接configuration我的域名。 我想我的ip_addr像“domainname.com”而不是127.0.0.1。 var ip_addr = 'domainname.com'; var port = '80'; var connection_string = '127.0.0.1:27017/myapp'; var db = mongojs(connection_string, ['myapp']); var jobs = db.collection("jobs") var server = restify.createServer({ name : "myapp" }); server.use(restify.queryParser()); server.use(restify.bodyParser()); server.use(restify.CORS()); server.listen(port ,ip_addr, function(){ console.log('%s listening at %s ', server.name , server.url); }); 我得到一个错误EADDRNOTAVAIL每当我使用“域名.com”而不是“127.0.0.1”可以有人帮助,我怎样才能configuration它在我的域名在这个节点的应用程序?

从Node.js中的Promise(Bluebird)返回值

我正在学习Node.js,正在查看Promise模块。 我很新,所以请用不好的代码约定和东西。 我正在尝试使用restify构buildREST客户端API。 我附上了我的客户代码如下: 这是我的客户: // local functions function loadResult(err, req, res, obj) { //console.log(err, req, res, obj); var result = { 'err': err, 'text': obj }; console.log(result); return result; } function getClient() { if (client) { return client; } else { client = restify.createJsonClient(options); return client; } }; function RestClient(headers) { if (headers) { […]

基于SSL的IIS上托pipe的NodeJS Express API返回错误:无法validation第一个证书

我有一个基于IIS8(使用iisnode)托pipe的NodeJS API应用程序(Express 4)REST。 我有几个基于.net和NodeJS的客户端使用REST API。 客户端可以通过HTTP执行GET和POST操作,但是通过SSL(HTTPS),它会失败,并显示以下错误: {[错误:无法validation第一个证书]代码:'UNABLE_TO_VERIFY_LEAF_SIGNATURE',正文:{}}。 NodeJS API应用程序驻留在IIS中有一个绑定在PORT 443上的自签名证书。我使用Fiddler进行了testing,并执行了一个POST操作,看起来工作正常,但客户端(使用RESTIFY或.Net应用程序的NodeJS)无法通过HTTPS执行POST

节点API框架

我有一个用Java编写的服务器端API,为我的Web应用程序提供所有的dynamic数据。 我正在用Ember.js写一个新的前端。 我想创build一个新的后端使用JavaScript的dynamic数据使用旧的API。 基本上是中间件。 我有一个大的JSON文件,其中包含每个页面的信息(标题,描述,获取dynamic数据的URL等)。 website: { tab1: { title: "Tab 1", pages: [ page1: { title: "Page 1", description: "Description 1", url: "url containing data" }, page2: { title: "Page 2", description: "Description 2", url: "url containing data" } ] }, tab2: { title: "Tab 1", pages: [ page1: { title: "Page 1", description: […]

node-restify父path处理程序

如果我有两个path,比方说/path/one和path/two ,而我不是由父处理程序首先处理,然后由它们的特定处理程序处理。 我怎样才能做到这一点。 下面的代码将不起作用。 他们的具体处理程序从不运行 const restify = require('restify'); const app = restify.createServer(); app.get('/path/:type', function (req, res, next) { console.log(req.params.type + ' handled by parent handler'); next(); }); app.get('/path/one', function (req, res) { console.log('one handler'); res.end(); }); app.get('/path/two', function (req, res) { console.log('two handler'); res.end(); }); app.listen(80, function () { console.log('Server running'); });

只能发出一个GET请求,而不会出现错误:“发送后无法设置标题”。

我想我的http服务器返回从asynchronous函数返回的一些json。 我设法使它工作,但它只能工作一次,然后抛出:“发送后无法设置标题。 错误。 这里是下面的代码: var server = restify.createServer(); server.get('/', function(req, res, next) { feed("dilma",[]); eventEmitter.on('retorno', function(retorno){ res.send(retorno); }); }); server.on("listening", function() { console.log("server running!"); }); server.listen(7171); 进给function: var feed = function headLinesBySite(word, l) { if (!Array.isArray(l)) { console.log("por favor passe um array"); return false; } if (l !== []) { links = l; } links […]

无法启动在Azure中托pipe的nodejs web api

学习nodejs并开始使用restify创build我自己的restful API。 我创build了一个非常简单的server.js文件,其中包含一个基本上是hello worldtypes的例子,启动如下: server.post('/api/messages', servicemanager.verifyFramework(), servicemanager.listen()); server.get(/.*/, restify.serveStatic({ 'directory': '.', 'default': 'index.html' })); server.listen(process.env.port || 3978, function () { console.log('%s listening to %s', server.name, server.url); }); 在当地工作正常。 我不能打http:// localhost:3978 ,我可以testing我的API调用只需调用http:// localhost:3978 / api / messages 。 我已将代码部署到bitbucket中,现在我想使用App Services在Azure中托pipe这些API。 我的项目结构是这样的: /topfolder -/myproject -/node_modules -/node_modules… server.js package.json index.html 当我在Azure中设置新的应用程序服务时,我可以看到部署从BB接收代码,但该服务从不响应我的请求。 我已经设置了应用程序的主path: /site/wwwroot/topfolder/myproject ,当我导航到http://myproject.azurewebsites.net时,我可以看到index.html ,所以这很好。 我实际上得到一个404错误: The resource […]