Tag: restify

Nodejs应用程序结构

我想知道是否我正在构build我的nodejs应用程序来说明最佳性能。 我主要关心的是如何通过模块移动我的应用程序参考。 基本上在我的app.js文件中,我声明了我所有的需求,库等: var app = { config : require('../../config.json'), restify : require('restify'), path : require('path'), mongo : require('mongodb'), model : require('./models.js'), step : require('step'), q : require('q'), api : require('./api_util.js'), underscore : require('underscore') }; 在我的导出中,我传递了整个应用程序对象。 现在,我已经了解了JavaScript的知识(如果我错了,可以纠正我),这不会创build对象的新实例,它只是将对象作为指针传入并引用内存中的同一个对象。 现在我发现自己在这方面做的(放松)是在我的restify库中(同样可以用Express来完成),我将app值附加到服务器请求对象,如下所示: app.server.pre(function (request, response, next) { request.app = app; return next(); }); 因此,如果我需要快速访问我的任何库声明,configuration等每一个请求,我可以很容易地访问request.app。 我也没有看到这是一个问题,同样的逻辑对象作用指针回到同一个内存空间,所以我没有加倍的内存使用量或任何东西。 有没有更好/更简单的方法来构build这个?

restify JSON客户端返回DEPTH_ZERO_SELF_SIGNED_CERT错误

我有服务器与heroku SSL插件在heroku上运行。 服务器是用这个选项创build的: name: 'ServerName', version: '1.0.0', 而我运行这样的服务器: server.listen(process.env.PORT || 5000) 它工作正常,我可以打电话给我的API例如: https : //myapp.herokuapp.com/some-path 。 heroku上的SSL证书是自签名的,所以在浏览器中有一个很大的警告,但我可以点击继续,它的工作原理。 当我想用restify JSON客户端调用我的服务器时,创build如下: var client = restify.createJsonClient({ url: 'https://myapp.herokuapp.com' }); 然后调用一些像这样的client.get('/some-path',…)然后客户端返回错误: DEPTH_ZERO_SELF_SIGNED_CERT 我试图设置选项rejectUnauthorized服务器和客户端(作为构造选项),但它并没有帮助…

使用everyauth restify

我正在尝试使用everyuth来处理用restify创build的其余api的身份validation。 但找不到出发点。 我希望能做到这样的事情: var restify = require('restify'); var everyauth = require('everyauth'); var server = restify.createServer(); server.use(everyauth.middleware()); 但是restify不接受everyauth中间件。 我如何去设置restify和everyauth?

获取Restify REST API服务器以支持HTTPS和HTTP

我正在使用node.js restify ver4.0.3 简单的下面的代码作为一个支持HTTP的简单的REST API服务器。 示例API调用是http://127.0.0.1:9898/echo/message var restify = require('restify'); var server = restify.createServer({ name: 'myapp', version: '1.0.0' }); server.use(restify.acceptParser(server.acceptable)); server.use(restify.queryParser()); server.use(restify.bodyParser()); //http://127.0.0.1:9898/echo/sdasd server.get('/echo/:name', function (req, res, next) { res.send(req.params); return next(); }); server.listen(9898, function () { console.log('%s listening at %s', server.name, server.url); }); 假设我想支持HTTPS并使API调用https://127.0.0.1:9898/echo/message 如何才能做到这一点? 我注意到restify代码变化非常快,旧版本的代码可能不适用于最新版本。

确定2.6发布数据

我只是开始尝试Restify(和一般的NodeJS),并且我有一些麻烦来获取用户的POST数据。 我有一个基本的节点应用程序。 在文档和一些博客文章,我读它就像使用queryParser一样简单,但它不工作。 我认为问题出在我的CURL命令上。 节点App: var restify = require('restify'); function userCreation(request, result, next) { console.log(request.body); console.log(request.query); console.log(request.params); result.send({ name: request.params.name }); return next(); } var server = restify.createServer({ version: '1.0.0' }); server.use(restify.gzipResponse()); server.use(restify.queryParser()); server.post({ path: '/users', versions: ['1.0.0'] }, userCreation); server.listen(8080, function() { console.log('%s listening at %s', server.name, server.url); }); CURL命令: curl -is -X POST […]

基本authentication与Node.js和restify

我目前正在用NodeJS开发一个REST风格的Web服务并进行调整 。 我已经把所有的东西都和node-mysql一起运行,但是我也想实现HTTP基本authentication。 我只用Apache和一个.htaccess文件做了一次。 但是这里的Web服务器带有restify,我开始像这样: var server = restify.createServer({ name: 'my webservice' }); 在restify文档( http://mcavage.me/node-restify/#Bundled-Plugins )中列出了一个authenticationparsing器插件,但我不知道如何使用它。 即使使用http://user:pass@url… , req.username值也始终设置为匿名。 最好的事情是,如果我可以用.htpasswd文件来存储/访问用户并传递。 有谁知道如何实现这与restify或其他模块?

将jQuery JSON对象发布到NodeJs Restify

我想知道为什么很难发布一个简单的JSONstring在/:parameter来restify。 我跟着很多例子,但没有find具体的东西。 我在前端有以下代码。 $("#btnDoTest").click(function() { var jData = { hello: "world" }; var request = $.ajax({ url: "http://localhost:8081/j/", async: false, type: "POST", data: JSON.stringify(jData), contentType: "application/javascript", dataType: "json" }); request.success(function(result) { console.log(result); }); request.fail(function(jqXHR, textStatus) { alert("Request failed: " + textStatus); }); }); 如果我连接j/后的参数,我发送简单的文本是成功的。 但是我想发送的是一个像这样的对象{hello:"world"}并将其重构到nodeJS中并使用它。 – 编辑: This is my nodejs file /* the below […]

如何得到Restify服务器的确切的IP地址在听?

考虑下面的代码为restAPI节点服务器。 var restify = require('restify'); var server = restify.createServer(); server.get('/echo/:name', function (req, res, next) { res.send({name: req.params.name}); next(); }); server.listen(8080, function () { console.log('%s listening at %s', server.name, server.url); }); 用节点运行该服务器: $ node echo.js restify listening at http://0.0.0.0:8080 它显示0.0.0.0这是错误的。 任何人都可以如何控制台login服务器的确切的IP时,它打开? 谢谢 更新 :执行下面的代码,我得到下面提到的输出,这又是很难,哪个IPselect? rest_server.listen(config.appPort, function () { var adrs = require('os').networkInterfaces(); console.log(adrs); console.log('%s listening at […]

找不到模块dtrace-provider

我有一个简单的nodejs应用程序抛出"Cannot find module './build/Release/DTraceProviderBindings'" 。 我在网上查找它,看起来像很多人在Windows上使用restify(这是我的情况,我在Windows 10上使用restify)有同样的问题。 显然, dtrace-provider是一个可选模块,用于调整 ,没有Windows的版本。 所以,我到目前为止的尝试: 更新节点到v6.2.0; 卸载所有模块并运行npm install –no-optional ; 只卸载restify并运行npm install restify –no-optional ; 而我最绝望的举动npm install dtrace-provider 。 我在github问题上发现的所有东西,我发现OSX用户和其他模块有相同的错误。 不知道还有什么要尝试。 注意:这个exception不会停止我的应用程序,甚至不会在控制台上打印错误,我只是注意到这是使用debugging器发生的,换句话说,我的应用程序运行正常,但是这种情况在后台继续发生。 我正在使用的其他模块列表: "dependencies": { "restify": "latest", "request": ">=2.11.1", "cheerio": ">=0.10.0", "xml2js": ">=0.2.0", "botbuilder": "^0.11.1", "applicationinsights": "latest" }

restify 2.6.1如何禁用特定请求的body parser

我对node.js服务非常陌生,而且我正面临一个multipart / form-data内容types的问题。 我需要一种方法来禁用特定请求的身体分析器function。 我正在使用restify 2.6.1。 下面是一些configuration的片段。 我的设置是: App.js : server.use(restify.authorizationParser()); server.use(restify.dateParser()); server.use(restify.queryParser()); server.use(restify.jsonp()); server.use(restify.bodyParser()); server.use(restifyValidator); server.use(restify.gzipResponse()); server.use(passport.initialize()); server.use(restify.conditionalRequest()); Route.js : app.post({path: '/test/upload/:upload_image_name', version: ver}, uploadCtr.uploadImage); app.post( {path: '/test/upload/:upload_image_name', version:ver }, passport.authenticate('bearer',{ session: false}),uploadCtr.uploadImage); 没有restify.bodyParser()上传图像工作(但依赖于jsonparsing器的一切都失败了) 提前致谢。