Tag: hapijs

如何使用nodejs和HAPI上传文件?

谁能告诉我如何上传文件使用nodejs和HAPI? 我正在处理程序中获取二进制数据。 这是我的html代码: function sendFormFromHTML(form) { //form = $(".uploadForm").form; var formData = new FormData(form); formData.append('id', '123456'); // alternative to hidden fields var xhr = new XMLHttpRequest(); xhr.open('POST', form.action, true); xhr.onload = function(e) { alert(this.responseText) }; xhr.send(formData); return false; } <form method="post" id="uploadForm" action="http://localhost:3000/api/uploadfiles" enctype="multipart/form-data"> <label for="upload">File (Binary):</label> <input type="file" name="upload" class="fileupload" /><br/> <input type="button" class="submit" […]

Hapi嵌套路由

假设我想让REST端点看起来像这样: /projects/ /projects/project_id /projects/project_id/items/ /projects/project_id/items/item_id 每个CRUD都是有道理的。 例如,/项目POST创build一个新项目,GET获取所有项目。 / projects / project_id GET只提取一个项目。 项目是特定项目,所以我把它们放在project_id下,这是一个特定的项目。 有没有办法创build这种嵌套的路线? 现在我有这样的东西: server.route({ method: 'GET', path: '/projects', handler: getAllProjects }); server.route({ method: 'GET', path: '/projects/{project_id}', handler: getOneProject }); server.route({ method: 'GET', path: '/projects/{project_id}/items/{item_id}', handler: getOneItemForProject }); server.route({ method: 'GET', path: '/projects/{project_id}/items', handler: getAllItemsForProject }) 但是我正在寻找一种方法将物品路线embedded到项目路线中,并且有能力进一步传递项目。 任何build议?

使用Hapi时如何将路线存储在单独的文件中?

所有Hapi示例(以及Express中的类似示例)都显示了path在起始文件中的定义: var Hapi = require('hapi'); var server = new Hapi.Server(); server.connection({ port: 8000 }); server.route({ method: 'GET', path: '/', handler: function (request, reply) { reply('Hello, world!'); } }); server.route({ method: 'GET', path: '/{name}', handler: function (request, reply) { reply('Hello, ' + encodeURIComponent(request.params.name) + '!'); } }); server.start(function () { console.log('Server running at:', server.info.uri); }); 然而,在用大量不同的路线实施生产应用程序时,不难想象这个文件有多大。 […]