我是Nodejs的新手,并且一直使用Express框架来构建Web应用程序。在应用程序中,我在有人成功支付项目后创建收据,我想通过电子邮件将收据发送给他们。
最好的方法是什么?我想在用户将帖子发送到/付款后我可以将它们重新路由到端点,该端点通过电子邮件发送电子邮件,然后将它们重新路由到/收据以显示收据。或者我可以在/ payment中执行此操作,但是会阻止任何内容并使其变慢,使用Stripe结帐并将所有内容添加到数据库已经需要几秒钟。
即使我已经阅读了很多关于它的内容,但我并不完全理解整个eventloop概念。我理解回调和所有这些,但我不确定为什么不阻止eventloop?回调可以与其他功能同时执行吗?我认为这将有助于我了解发送电子邮件的最佳行动方案,具体取决于是否会阻止任何内容并使其更加延迟。感谢所有的帮助,感谢那些可以帮助像我这样的初学者理解这些超级重要的Node概念的人。感谢。
答案 0 :(得分:0)
您的问题没有提供有关您的Web应用程序的太多见解,但在这里我提到了一些对Node.js中的任何初学者来说非常重要的要点。
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("Program Ended");
但事件循环实际上是在寻找任何事件,而不是像回调那样的所有情况的结果。事件可能像打开文件或关闭文件。下面给出了一个常见的事件用例:
// Import events module
var events = require('events');
// Create an eventEmitter object
var eventEmitter = new events.EventEmitter();
// Create an event handler as follows
var connectHandler = function connected() {
console.log('connection succesful.');
// Fire the data_received event
eventEmitter.emit('data_received');
}
// Bind the connection event with the handler
eventEmitter.on('connection', connectHandler);
// Bind the data_received event with the anonymous function
eventEmitter.on('data_received', function(){
console.log('data received succesfully.');
});
// Fire the connection event
eventEmitter.emit('connection');
console.log("Program Ended.");
有关上述要点的详细说明,请再次阅读Node.js文档。