Articles of restify

根据数据库结果确定dynamic路由

我正在尝试为我的应用程序创build特定的路由规则。 不过,我希望这些规则是基于数据库中表格内容的通用方法。 这意味着根据数据库规则,有时可能会在restify服务中插入或删除一些路由。 我正在寻找一个解决scheme,但我找不到任何东西,这里是我的代码的一个例子: server.put('/logging/create', function(req, res, next){ return next(); }); server.delete('/logging/delete', function(req, res, next){ return next(); }); server.post('/logging/update', function(req, res, next){ return next(); }); 我想实现的是在不重新启动节点js脚本的情况下即时添加/删除特定的请求。 我所拥有的是一个包含所有规则的数组。 一个规则的例子是: { "name":"/logging/create", "method":"put", "status":"active" }, { "name":"/logging/delete", "method":"delete", "status":"inactive" }, { "name":"/logging/update", "method":"post", "status":"active" } 我唯一想要的是在飞行中添加/删除路线。

用restify清理file upload后的临时文件

我正在用restify构build节点存储服务器。 我正在通过restify.bodyParser处理上传,其中引擎盖下使用formidable 。 在默认情况下,强大的商店文件在os.tmpDir() ,我需要将其更改为其他文件夹,所以我通过restify.bodyParser({uploadDir: '/path/to/new/tmp'}) 。 问题在于,即使在完成处理请求之后,这些临时文件仍保存在tmp目录中。 我已经看到了这个问题( 上传后处理临时文件 ),假设刚刚删除后处理它的tmp文件。 我的问题是,你是否需要总是手动删除文件? 即使使用默认的os.tmpDir()目录? 默认系统tmp文件夹如何工作? 它有时会冲洗吗?

node.jspipe道restify http客户端响应

我有这个确切的问题,除了我使用restify HttpClient: node.js写入http响应stream 为了清楚起见,我试图做到这一点: var client = restify.createClient({ url: "http://www.google.com" }); client.get("/", function(err,res) { res.pipe(process.stdout); }); 它挂起几秒钟,但从不写入任何标准输出。 显然,我正在尝试获取比谷歌的主页,但例如…

限制暴露其他文件的静态服务

我正在使用节点的restify来创build一个简单的API。 我想要一个目录/public目录,人们可以简单地浏览到该目录并下载他们浏览的文件。 为了做到这一点,我用在/routes/public.js : server.get(/\/public\/?.*/, restify.serveStatic({ directory: __dirname + '/../' })); 因为我的文件结构是这样的: index.js /routes public.js /public files to be served 不过,我注意到一个很大的安全问题。 通过浏览http://domain.com/public/../index.js可以下载源代码! 显然,我不希望这种情况发生。 这是一个权限的工作,还是有什么我应该做的? 谢谢

testing使用SinonJs和Mocha来限制包含Promise Code Block的Route Handler

我有一个restify行动代码块如下: function retriveAll(req, res, next) { db.user .find({where: {id: 1}) .then(function(user){ res.send(user); }) .catch(function(details){ res.send(details.message); }) .finally(function(){ next(); }); } 我想testing这个动作,具体validationres.send()在这个代码块中被调用 。 稍后validationres.send()返回的数据。 我正在使用SinonJs和Mocha进行testing框架。 以上是上述方法的示例testing代码块。 describe('retrieveAll()', function() { reqStub = {}; resStub = {send: sinon.stub()}; nextStub = sinon.stub(); beforeEach(function() { module.retrieveAll(reqStub, resStub, nextStub); }); // this doesn't work // and the sub.calledCount is 0 // […]

NODEJS:如何用Restify读取Body参数?

我是Node / Restify的新手,在这里一定是错过了一些愚蠢的东西,但是我一直在这个问题上徘徊。 希望有人能帮助。 我试图用restify从POST请求读取Body参数。 我发现的一切似乎表明,我所需要的是server.user(bodyParser()),但它不工作,我不知道为什么,我不知道如何进一步排除故障。 任何人都可以帮我指出我在这里做错了什么吗? 我创build了一个简单的服务器如下: var restify = require('restify'); var server = restify.createServer(); server.use(restify.bodyParser()); server.post("/test", function(req, res){ console.log(req.params); console.log(req.body); res.send(200); res.end(); }); server.listen(8081); 然后我运行下面的POST请求: POST /test?GET_PARAM=def HTTP/1.1 Host: localhost:8081 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 33 POST_PARAM1=abc&POST_PARAM2=ghi 这会在控制台中产生以下结果: debugger […]

当我的代码出现错误时,如何从restify获取堆栈跟踪?

比方说,我已经定义了以下restify端点: server.get('/test/1', function (req, res, next) { undefinedFunctionCall(); // Will cause exception return next(); } 我怎样才能得到我的服务器控制台的堆栈跟踪,告诉我, undefinedFunctionCall是未定义的? 客户端得到它,但不是服务器。 我已经阅读了文档 ,你可以听到事件InternalServerError和InternalError ,但是当我testing时没有任何的火灾。 我必须做什么? 码: server.on('InternalServerError', function (req, res, err, cb) { console.log('INTERNAL ERROR!'); // Never executed return cb(); }); 我在Windows 10的节点0.10.33上运行Restify 4.0.0

在服务器端支持图片上传吗?

我正在尝试创build一个REST API服务器,可以接受图像上传与node.js restify。 我查看了http://restify.com/上的文档,但无法确定restify是否支持将图像上载为服务器。 在服务器端支持图片上传吗? 如果不是,哪个node.js模块可以用来做图像上传服务器?

node.js请求和restify客户端有什么区别?

两者似乎都有类似的目的。 我正在使用restify服务器作为REST API服务器。 这是否意味着我更喜欢使用客户端? http://restify.com/#client-api https://www.npmjs.com/package/request

在post API中redirect错误

我正在使用node.js restify和passport模块,restify-ensure-login模块执行用户loginauthenticationfunction。 https://www.npmjs.com/package/restify-ensure-login 这里是相关的代码; var passport = require('passport'); var Strategy = require('passport-local').Strategy; passport.use(new Strategy( function(username, password, cb) { db.users.findByUsername(username, function(err, user) { if (err) { return cb(err); } if (!user) { return cb(null, false); } if (user.password != password) { return cb(null, false); } return cb(null, user); }); })); passport.serializeUser(function(user, cb) { cb(null, user.id); }); […]