简体   繁体   English

发送由React渲染的HTML作为Node JS中的电子邮件正文

[英]send html rendered by react as email body in node js

I have a react application. 我有一个应聘申请。 It has two pages - AddStatus and ViewStatus. 它有两个页面-AddStatus和ViewStatus。 Both are react components. 两者都是反应成分。

My requirement is - I have to send an email daily at a particular time with details as seen in ViewStatus screen. 我的要求是-我必须每天在特定时间发送一封电子邮件,其中包含ViewStatus屏幕中显示的详细信息。

I can set up node-mailer and node-scheduler to do that. 我可以设置node-mailer和node-scheduler来做到这一点。 But how do i render the ViewStatus component from backend. 但是我如何从后端渲染ViewStatus组件。 How do i get the HTML of viewStatus screen. 如何获取viewStatus屏幕的HTML。

I tried using renderToString method of ReactDOMServer like below in my server.js but getting error 我尝试在server.js中使用ReactDOMServer的renderToString方法,如下所示,但出现错误

 var App = React.createFactory(require('../ViewStatus')) var p = ReactDOMServer.renderToString(App()); 

  Error: locals[0] does not appear to be a `module` object with Hot Module replace
ment API enabled. You should disable react-transform-hmr in production by using
  `env` section in Babel configuration. See the example in README: https://github.
 com/gaearon/react-transform-hmr

Another approach I though of is using react-router but I am not sure how to trigger the route from backend. 我虽然使用的另一种方法是使用react-router,但是我不确定如何从后端触发路由。

How do I get the HTML of my viewstatus component in my server.js 如何在server.js中获取viewstatus组件的HTML

var React = require("react");
var ReactDOMServer = require("react-dom/server");

var MyComponent = React.createClass({
   render: function() {
      return React.DOM.div({}, "Text");
    }
});

var App = React.createFactory(MyComponent)

var html = ReactDOMServer.renderToString(App());

console.log("HTML =\n", html);

Output: 输出:

HTML =
 <div data-reactroot="" data-reactid="1" data-react-checksum="-1164111617">Text</div>

Works for me, as your error says, seems like you have issues with the React Hot Loader .. Your code seems to be fine. 如您的错误所述,对我有用,似乎您在使用React Hot Loader时遇到问题..您的代码似乎很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM