我正在开发hapi应用程序,我想通过向用户发送电子邮件来实现忘记密码逻辑。为此,我使用插件hapi-mail使用AWS的SES服务发送电子邮件。我收到一个错误:
"name" [1]: -- missing --
},
"options": {
"template": {
"engine": "handlebars",
"path": "./templates/"
},
"email": {
"engine": "ses",
"options": {
"region": "eu-west-1"
},
"defaultFrom": "abc@gmail.com"
}
}
}
[1] "name" is required
at new AssertionError (internal/errors.js:469:11)
at Object.exports.assert (/home/Utkarsh_Jaiswal/Documents/node-hapi-app/node-hapi-app/node_modules/hoek/lib/index.js:736:11)
at Object.exports.apply (/home/Utkarsh_Jaiswal/Documents/node-hapi-app/node-hapi-app/node_modules/hapi/lib/config.js:22:10)
at internals.Server.register (/home/Utkarsh_Jaiswal/Documents/node-hapi-app/node-hapi-app/node_modules/hapi/lib/server.js:392:31)
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:721:11)
at startup (internal/bootstrap/node.js:228:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
(node:8069) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8069) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that arenot handled will terminate the Node.js process with a non-zero exit code.
以下是定义选项并在服务器中注册插件的代码片段:
const options = {
template: {
engine: 'handlebars',
path: './templates/'
},
email: {
engine: 'ses',
options: { accessKeyId: access_key, secretAccessKey: secret_key, region: 'eu-west-1' },
defaultFrom: 'abc@gmail.com'
}
};
await server.register([{
plugin: require('hapi-mail'),
options: options
}]);
如何解决此错误?还有一种更好的方法来实现这个想法。除了我正在使用的方法之外,处理这个问题的方法应该是什么?
答案 0 :(得分:0)
您尝试使用的插件适用于较旧版本的Hapi。它要求版本15通过package.json
。
Hapi版本17,您正在使用contains changes注册插件的方式,这些插件与旧版本的Hapi不向后兼容。
您需要找到支持Hapi 17的其他邮件插件或降级才能使用Hapi 15,但我不推荐使用后者。