Articles of hapijs

Hapi js导出服务器variables

我想添加testing到我的项目。 服务器是写在Hapi,我想知道在哪里把我的testing文件夹以及如何将服务器variables导出到testing文件。 我知道我可以导出它与module.exports = server但我认为这不是一个好主意导出它。 有什么build议么?

hapijs自定义http状态消息

我有要求在hapijs应用程序中设置一个自定义的HTTP状态消息。 这可以怎么做? 我的代码是: 'use strict'; const Hapi = require('hapi'); const server = new Hapi.Server(); server.connection({ port: 3000, host: 'localhost' }); server.route({ method: 'GET', path: '/', handler: function (request, reply) { reply('Hello, world!\n') .header('set-cookie', 'abc=123') .message("Hello world"); } }); server.start((err) => { if (err) { throw err; } console.log(`Server running at: ${server.info.uri}`); }); 当我通过curl这样调用它: curl -v […]

在Hapi.js中将httpredirect到https

我有我的hapi服务器的以下configuration const server = new Hapi.Server(); const tls = { cert: fs.readFileSync(path.join(__dirname, '../certificates/cert.crt')), key: fs.readFileSync(path.join(__dirname, '../certificates/cert.key')), }; server.connection({ port: process.env.PORT_HTTP || 80, host: process.env.HOST || 'localhost', }); server.connection({ port: process.env.PORT_HTTPS || 443, host: process.env.HOST || 'localhost', tls, }); 服务器在http和https上运行正常,但我想redirect从http到https所有stream量。 我应该怎么做,已经尝试注册hapi-require-https npm模块,但stream量仍然保持不变,没有任何反应。

在dynamodb中使用nodejs在列表内search

我正在做一个项目,我们正在使用Dynamodb作为数据库,我有一个这样的结构的文档: { "shop_id": "hh-delightme", "shoppers": [ { "email": "hatim.haffane@gmail.com", "name": "hatim haffane" }, { "email": "xxx.zzz@gmail.com", "name": "bxdsf sdf sd f" } ] },{ "shop_id": "it-delightme", "shoppers": [ { "email": "hatim.haffane@gmail.com", "name": "hatim haffane" }, { "email": "xxx.zzz@gmail.com", "name": "bxdsf sdf sd f" } ] } 我有两个索引shop-id-index和email-index,所以我想要做的是在shop_id“hh-delightme”中得到带有“hatim.haffane@gmail.com” 我试过这个代码,但没有成功 var params = { TableName:"shopper", KeyConditionExpression:"shop_id = […]

如何添加一个URL查询参数hahib代理调用hapijs

supose我想添加一个查询参数到这个调用谷歌,但编码而不是做一个从http调用转发 我正在使用nodejs hapi框架 server.route({ method: '*', path: '/{p*}', handler: { proxy: { host: 'google.com', port: 80, redirects: 5 } } }); 在调用之前可以修改url。

nodejs hapiJs:发送,接收来自客户端的数据

我有以下文件; client.js和server.js。 我想发送数据到我的服务器,使用Ajax。 我设法发送search的用户名,但是在服务器上接收到的域未定义。 我不确定是否在客户端或服务器端丢失了某些东西? 在服务器端,我的函数应该是一个通用的函数,允许它接收任何域,并在该域上的请求问题。 任何人都可以帮忙吗? Cliente: $(document).ready(function(){ console.log("Ready!"); var domains=[ ]; //pass domain names into array for easier iteration domains.push($(".facebook").find("a").text()); domains.push($(".github").find("a").text()); domains.push($(".twitter").find("a").text()); domains.push($(".instagram").find("a").text()); domains.push($(".pinterest").find("a").text()); console.log(domains); $("#searchbutton").on('click', function(event){ var username = $("#searchname").val().trim(); // store value from searchbox console.log(username); if(username === ""){ event.preventDefault(); } if(username){ var newhtml = "<p>"; newhtml += username; newhtml += "</p>"; […]

Hapi.jsfile upload如何抓取文件,以便使用imageMagick命令行工具

我改变了代码来输出一个文件,而不是一个stream。 IT为我提供了tmppath,当我使用fs.readFile转换为string时,数据是 fileUpload=Resume_BrianInoa.pdf 我发布一个文件到hapijs服务器这是我的路线处理post: server.route({ method: 'POST', path: '/convert', config: { payload: { output:'file', maxBytes:209715200, parse: false, allow: 'application/x-www-form-urlencoded' }, handler:function (request, reply) { console.log('path : ' + request.payload.path); // request.payload["fileUpload"].pipe(fs.createWriteStream("test")); fs.readFile(request.payload.path, function (err, data) { if(err) console.error(err); else console.log(data.toString()); // I want to rewrite the file to a new folder here // Then convert […]

在HapiJS置信度configuration对象中设置过滤对象的默认值

我在我的项目中使用Confidence库(在HapiJS套件中)进行configurationpipe理(这个configuration文件专门用于WinstonJS传输),而且我想知道是否可以在一个filter中设置单个项目的默认值目的。 我不确定我是否解释了这个问题,我不确定正确的术语是什么,所以inheritance了一个例子: 我目前有一部分configuration设置: module.exports = { $filter: 'env', development: { level: { console: 'debug', file: 'debug' }, path: 'app-core.log' }, staging: { level: { console: 'warn', file: 'warn' }, path: 'app-core.log' }, production: { level: { console: 'error', file: 'error' }, path: 'prod-app-core.log' } } 但是因为所有环境项目的path都应该是相同的,除了production ,我希望能够为path值设置默认值。 像这样的东西: module.exports = { $filter: 'env', development: { […]

如何使用Chai Http发布对象数组

我试图用ChaiHttp这样发布一个对象数组: agent.post('route/to/api') .send( locations: [{lat: lat1, lon: lon1}, {lat: lat2, lon: lon2}]) .end (err, res) -> console.log err, res 它返回一个错误,如下所示: TypeError: first argument must be a string or Buffer at ClientRequest.OutgoingMessage.end (_http_outgoing.js:524:11) at Test.Request.end (node_modules/superagent/lib/node/index.js:1020:9) at node_modules/chai-http/lib/request.js:251:12 at Test.then (node_modules/chai-http/lib/request.js:250:21) events.js:141扔呃; //未处理“错误”事件^ 错误:在Zlib._handle.onerror错误的标题检查(zlib.js:363:17) 我也试图像这样发布信息,就像我们对邮递员所做的一样: agent.post('route/to/api') .field( 'locations[0].lat', xxx) .field( 'locations[0].lan', xxx) .field( 'locations[1].lat', xxx) .field( […]

如何防止在使用hapi.js reply()。hold()时重新加载脚本?

我刚开始使用hapi.js,并在尝试推迟路由响应时遇到问题。 我使用这段代码成功推迟了/query路由的响应: server.route([{ method: 'GET', path: '/query', config: { handler: function(request, reply) { var response = reply().hold(); db = request.server.plugins['hapi-mongodb'].db; someFxn(callbackFxn, request, response); } } }]); var someFxn(cb, req, res){ var raw = {}; //… do lots of stuff that can take a long time cb(req, res, raw); } var callbackFxn = function(request, response, data){ […]