Guest User

Untitled

a guest
Jul 16th, 2018
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.04 KB | None | 0 0
  1. xhr.js:178
  2. POST https://sheltered-plateau-28195.herokuapp.com/api/form 503 (Service Unavailable)
  3. (anonymous) @ xhr.js:178
  4. e.exports @ xhr.js:12
  5. e.exports @ dispatchRequest.js:57
  6. Promise.then (async)
  7. r.request @ Axios.js:51
  8. r.(anonymous function) @ Axios.js:71
  9. (anonymous) @ bind.js:9
  10. (anonymous) @ Contact.js:43
  11. r @ runtime.js:62
  12. (anonymous) @ runtime.js:296
  13. e.(anonymous function) @ runtime.js:114
  14. r @ main.dfd2c54d.js:12166
  15. (anonymous) @ main.dfd2c54d.js:12166
  16. (anonymous) @ main.dfd2c54d.js:12166
  17. e @ main.dfd2c54d.js:12171
  18. value @ reactstrap.es.js:1139
  19. o @ react-dom.production.min.js:15
  20. invokeGuardedCallback @ react-dom.production.min.js:16
  21. invokeGuardedCallbackAndCatchFirstError @ react-dom.production.min.js:16
  22. c @ react-dom.production.min.js:20
  23. d @ react-dom.production.min.js:22
  24. m @ react-dom.production.min.js:22
  25. p @ react-dom.production.min.js:21
  26. v @ react-dom.production.min.js:24
  27. g @ react-dom.production.min.js:24
  28. qe @ react-dom.production.min.js:88
  29. yr @ react-dom.production.min.js:222
  30. J @ react-dom.production.min.js:44
  31. Ve @ react-dom.production.min.js:89
  32. br @ react-dom.production.min.js:223
  33. He @ react-dom.production.min.js:89
  34.  
  35. createError.js:16 Uncaught (in promise) Error: Request failed with status code 503
  36. at e.exports (createError.js:16)
  37. at e.exports (settle.js:18)
  38. at XMLHttpRequest.d.(anonymous function) (https://sheltered-plateau-28195.herokuapp.com/static/js/main.dfd2c54d.js:1:121252)
  39.  
  40. import React, { Component } from 'react';
  41. import image5 from '../images/5.jpeg';
  42. import './Contact.css';
  43. import Footer from './footer/Footer';
  44. import { Button, FormGroup, Input, Form } from 'reactstrap';
  45. import axios from 'axios';
  46.  
  47. class Contact extends Component {
  48. constructor() {
  49. super();
  50.  
  51. this.state = {
  52. subject: '',
  53. name: '',
  54. email: '',
  55. message: '',
  56. leaveMsg: false
  57. };
  58. this.onHandleSubmit = this.onHandleSubmit.bind(this)
  59. }
  60.  
  61. onHandleChangeEmail = (event) => {
  62. this.setState({
  63. email: event.target.value
  64. })
  65. }
  66.  
  67. async onHandleSubmit(event) {
  68. event.preventDefault();
  69. const { subject, name, email, message } = this.state
  70.  
  71. const form = await axios.post('/api/form', {
  72. subject,
  73. name,
  74. email,
  75. message
  76. })
  77. }
  78.  
  79. render() {
  80. return (
  81. <div>
  82. <div>
  83. <img src={image5} alt="" className="contact-image"/>
  84. </div>
  85.  
  86. <Form onSubmit={this.onHandleSubmit} >
  87. <div className="Contact-container">
  88. <div className='col-md-8 push-md-2 col-lg-6 push-lg-3'>
  89. <FormGroup>
  90. <div className='row form-group'>
  91. <div className='col-6'>
  92. <Input
  93. className='form-control'
  94. type="text"
  95. name="subject"
  96. placeholder="Subject"
  97. title="Provide your subject"
  98. value={this.state.subject}
  99. onChange={(event) => this.setState({subject: event.target.value})}
  100. />
  101. </div>
  102. <br/>
  103. <div className='col-6'>
  104. <Input
  105. type="text"
  106. name="name"
  107. placeholder="Your name"
  108. title="Provide your name"
  109. value={this.state.name}
  110. onChange={(event) => this.setState({name: event.target.value})}
  111. />
  112. </div>
  113. <div className='col-6'>
  114. <Input
  115. className='form-control'
  116. name='formEmail'
  117. id='formEmail'
  118. type='email'
  119. placeholder='Your email address'
  120. title="Please provide your email address"
  121. onChange={this.onHandleChangeEmail}
  122. />
  123. </div>
  124. </div>
  125. </FormGroup>
  126. <FormGroup>
  127. <Input
  128. type="textarea"
  129. name="text"
  130. id="exampleText"
  131. placeholder='What do you want to bark about?'
  132. onChange={(event) => this.setState({message: event.target.value})}
  133. />
  134. </FormGroup>
  135. <div className="submit-btn">
  136. <Button type="reset">Reset</Button>
  137. <Button onClick={this.onHandleSubmit} >Submit</Button>
  138. </div>
  139. </div>
  140. </div>
  141. </Form>
  142. <Footer />
  143. </div>
  144. )}
  145. }
  146. export default Contact
  147.  
  148. const express = require('express');
  149. const bodyParser = require('body-parser');
  150. const nodemailer = require('nodemailer');
  151. const xoauth2 = require('xoauth2');
  152. require('./services/passport');
  153. require('dotenv').config();
  154.  
  155. const app = express();
  156.  
  157. app.use(bodyParser.json())
  158. app.use(bodyParser.urlencoded({ extended: false }))
  159.  
  160. require('./routes/authRoutes')(app);
  161.  
  162. if (process.env.NODE_ENV === 'production') {
  163. // Express will serve up production assets like out main.js file, or main.css
  164. file
  165. app.use(express.static('jacob-site/build'));
  166.  
  167. // Express will serve up the index.html file if it doesn't recognize the route
  168. const path = require('path');
  169. app.get('*', (req, res) => {
  170. res.sendFile(path.resolve(__dirname, 'jacob-site', 'build', 'index.html'));
  171. });
  172.  
  173. app.post('/api/form', (req, res) => {
  174. nodemailer.createTestAccount((err, account) => {
  175. const htmlEmail = `
  176. <h3>Contact Detail</h3>
  177. <h2>${req.body.subject}</h2>
  178. <ul>
  179. <li>Name: ${req.body.name}</li>
  180. <li>Email: ${req.body.email}</li>
  181. </ul>
  182. <h3>Message</h3>
  183. <p>${req.body.message}</p>
  184. `
  185.  
  186. let transporter = nodemailer.createTransport("SMTP", {
  187. service: 'gmail',
  188. auth: {
  189. type: 'OAuth2',
  190. user: 'halo88520@gmail.com',
  191.  
  192. // clientId: ENV['GOOGLE_CLIENT_ID'],
  193. clientId: process.env.GOOGLE_CLIENT_ID,
  194. // clientSecret: ENV['GOOGLE_CLIENT_SECRET'],
  195. clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  196. // refreshToken: ENV['GOOGLE_REFRESH_TOKEN'],
  197. refreshToken: process.env.GOOGLE_REFRESH_TOKEN,
  198. // accessToken: ENV['GOOGLE_ACCESS_TOKEN']
  199. accessToken: process.env.GOOGLE_ACCESS_TOKEN
  200. }
  201. })
  202.  
  203. let mailOptions = {
  204. // from: 'Johnny <test@gmail.com>',
  205. to: 'johnny88520@gmail.com', // Change to Jacob address
  206. subject: req.body.subject,
  207. replyTo: req.body.email,
  208. text: req.body.message,
  209. html: htmlEmail
  210. }
  211.  
  212. transporter.sendMail(mailOptions, (err, info) => {
  213. if (err) {
  214. return console.log(err)
  215. }
  216. else {
  217. console.log('Message sent: %s', info.message)
  218. console.log('Message URL: %s', nodemailer.getTestMessageUrl(info))
  219. }
  220. });
  221. });
  222. });
  223. }
  224.  
  225. GOOGLE_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
  226. GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
  227. GOOGLE_REFRESH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
  228. GOOGLE_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Add Comment
Please, Sign In to add comment