Tag: hapijs

如何在hapi.js服务器上编写Apache访问日志

我只是对hapijs而言是一个新手,并且做了一个简单的服务器。 现在我想有一个像写access.log的apache。 什么是最好的方法来做到这一点? 我可以只使用hapijs服务器来做到这一点,还是我应该更好地尝试整合winston来做到这一点? 如果第二个是更好的,你知道如何整合它。

通过HapiJS获取authentication错误

我已经创build了这个简单的插件: import bcrypt from 'bcrypt'; import Joi from 'joi'; import DynamoDBClient from '../lib/DynamoDBClient'; exports.register = (server, options, next) => { server.auth.strategy('simple', 'basic', { validateFunc: (request, email, password, callback) => { DynamoDBClient.findUserByEmail(email) .then(user => { if (!user) { return callback(null, false); } bcrypt.compare(password, user.password, (err, isValid) => { return callback(err, isValid, { id: user.id }); }); […]

在hapi中使用相对path访问静态文件

我已经通过http://hapijs.com/tutorials/serving-files 但它并没有帮助我。 我有一个文件a.js在项目的根目录中的静态目录。 我已经将relativePathconfiguration为胶合configuration作为项目根目录中的inert插件。 plugins: { 'vision': {}, 'inert': { routes: { files: { relativeTo: Path.join(__dirname, 'static') } } }, 'visionary': { engines: { // other plugins 我有一个服务器路由如下: { method: 'GET', path: '/a.js', handler: { file : 'a.js' } } 但是,当我尝试访问http://localhost:3000/a.js ,它会引发404错误。 我错过了什么?

不使用外部邮件服务器实现邮件确认?

我正在构build一个Hapi应用程序,我想实现基本的用户电子邮件确认function。 我有点失落,因为我没有在邮件服务器上的经验,也没有实现邮件function的任何应用程序。 我不想使用外部邮件服务,如谷歌发送电子邮件 。 也不需要能够接收电子邮件,也不需要存储发送的消息。 我想从邮件地址'mailerbot@mydomain.com',我已经有一个正在运行的web应用程序在mydomain.com。 该服务器是在EC2中运行的Centos 7。 我是否必须设置自己的邮件服务器( Haraka , Postfix等),还是可以直接从Node.js应用程序( Nodemailer , Hapi Mailer等)发送电子邮件给用户,而不使用本地和远程邮件服务器? 我看了一些例子,但他们通常使用谷歌或这样的邮件发送,所以我不知道如何实现我想要的,即从Node.js应用程序发送简单的邮件确认消息。

Hapi.js Catbox Redis返回“server.cache不是一个函数”

所以我99%肯定我只是搞砸了一些愚蠢的东西。 我试图设置catboxcaching对象到redis。 我已经redis和运行,我可以用RDM(SQL专业版像redis)打它,但Hapi不合作。 我这样注册redis catboxcaching: const server = new Hapi.Server({ cache: [ { name: 'redisCache', engine: require('catbox-redis'), host: 'redis', partition: 'cache', password: 'devpassword' } ] }); 我这样做在server.js这段代码之后,我继续注册一些更多的插件,并启动服务器。 我也在文件的末尾导出服务器 module.exports = server; 然后在我的路线文件中,我试图设置一个testing路线,如下所示: { method: 'GET', path: '/cacheSet/{key}/{value}', config: { auth: false }, handler: function(req, res) { const testCache = server.cache({ cache: 'redisCache', expireIn: 1000 }); […]

如何在Hapi.Js中获得完整的url?

request.url是一个在node / hapi框架中返回路由但不包含完整url的对象。 我怎样才能得到完整的url?

NodeJS – 将variables发送到客户端

嗨,我使用hapi和扩展hapi-auth-cookie示例,并希望在客户端页面上显示“东西”时,但用户login。但不能将我的variables发送到客户端。 服务器: 'use strict'; const Hapi = require('hapi'); const Vision = require('vision'); const Inert = require('inert'); const Path = require('path') const internals = {}; let uuid = 1; // Use seq instead of proper unique identifiers for demo only const rootHandler = function (request, reply) { reply.view('index', { title: 'examples/views/jade/index.js | Hapi ' + request.server.version, […]

Apollo服务器HAPI CORS预取不起作用

我有一个很大的问题,我必须使用graphql-server-hapi模块。 一切工作,直到我必须从CORS的浏览器请求我的API。 这里是寄存器configuration: register : GraphQLServer.graphqlHapi, options : { path : '/graphql', graphqlOptions : { schema : Schema, graphiql : true }, route : { cors : true } } 一切都很好POST请求本地主机上运行邮递员,但是当我想要运行一个OPTIONS请求(如浏览器将这样做),我得到一个404访问控制请求方法的错误: { "statusCode": 404, "error": "Not Found", "message": "CORS error: Missing Access-Control-Request-Method header" } 我到处search,但似乎没有人在我面前遇到这个问题(?!)。 官方文件说cors : true足以启用CORS … 我试图在注册选项上手动添加OPTIONS方法,没有任何影响。 谢谢你的帮助 !

NodeJS – 安排一个非常简单的任务在特定的date时间运行

我正在实施一个预约系统,我需要logging接受工作和开始工作之间的时间概念,以及工作的持续时间。 当达到工作起始时间时,我需要从“A状态”移动到“B状态”,一旦达到工作的结束时间,就从“B状态”移动到“C状态”。 我知道我可以使用像Bull或Bee-Queue这样的队列系统来实现这个function,但这似乎是错误的,因为我只需要改变我的工作状态,而不是执行任何后台处理。 我怎么能简单地说:“在下午3点,把这个任务改成'B'状态,下午5点,把这个任务改成'状态C'。 我可以每分钟轮询我的数据库吗? 这是“正确的”方法吗?

翻译一个while循环到一个承诺

我试图创build一个报告,扩展了我对Node和MySQL的理解。 我已经确定 ,我需要的每年的date信息将需要每年我要显示。 我现在有一个查询可以返回我需要的正确数据,我只需要在Node环境中重复这个。 从Delphi背景来看,下面的代码将为我提供我需要的数据 LoadTurnover = function (req, reply) { const queryDay = "-04-06"; const maxDate = new Date(); let queryYear = 2000; let qd = new Date(queryYear + queryDay); let dateArray = []; while (qd < maxDate) { // Get the data from the server let data = getData(sql); // let turnoverObj = […]