我正在尝试制作一个获取电子邮件地址并发送回复邮件的表单.我在vanilla JavaScript中使用XMLHttpRequest将数据发送到服务器,但是当我查看从index.html发送的数据时,它只是服务器端的空对象.
在后端我使用Node和Express以及Nodemailer.Nodemailer工作正常.我一直试图找出查询对象为什么没有任何内容.
// Here is server.js
var express = require('express');
var nodemailer = require('nodemailer');
var app = express();
// Send index.html
app.get('/', function(request, response) {
response.sendfile('index.html');
});
// Where I should receive data from JS written in index.html
app.post('/send', function(req, res) {
var mailOptions? = ? {
to: req.query.to,
subject: req.query.subject,
text: req.query.text
}
});Run Code Online (Sandbox Code Playgroud)
<!-- Here is my index.html with some JS in it -->
<div>
<input id="to" type="text" placeholder="Email" />
<input id="subject" type="text" placeholder="subject" />
<textarea id="content" …Run Code Online (Sandbox Code Playgroud)这是我的服务TypeScript文件.
import {Injectable} from '@angular/core';
import {Http, HTTP_PROVIDERS, Request, RequestOptions, Response, Headers} from '@angular/http';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class CarService {
constructor(private http: Http) { }
Url: string = 'url/of/api';
getCar(){
var headers = new Headers();
headers.append('API-Key-For-Authentification', 'my_own_key_goes_here');
headers.append('Accept', 'application/json');
var options = new RequestOptions({ headers: headers })
return this.http.get(this.Url, options)
.map((res: Response) => res.json())
}
}
Run Code Online (Sandbox Code Playgroud)
以上注入到下面的组件中.
import {Component} from '@angular/core';
import {CarService} from 'path/to/car.service';
@Component({
selector: 'home',
providers: [ CarService ],
template: `
<div>
<button (click)="getCar()">Get …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
export class App extends Component {
constructor(props) {
super(props)
}
async fetchSport(sport) {
let headers = new Headers()
headers.append('key-goes-here', 'pass-goes-here')
headers.append('Accept', 'application/json')
let request = new Request('api-url-goes-here' + sport, {headers: headers})
let data = await fetch(request).then(response => response.json()).then(json => json.players.forward)
console.log(data) // 'Christopher Brown'
return data
}
render() {
return (
<div className='app'>
<SportPlayers
sport={this.fetchSport('soccer')}
/>
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud)
未捕获的错误:对象作为React子对象无效(找到:[object Promise]).如果您要渲染子集合,请使用数组,或使用React附加组件中的createFragment(object)包装对象.检查`SportPlayers`的渲染方法.
我想弄清楚为什么会出现这个错误.该fetchSport函数应该返回一个字符串(如console.log建议),但似乎将一个promise返回给视图.
贝娄是我的webpack.config.js:
var webpack = require("webpack");
module.exports = {
entry: ["babel-polyfill", "./src/index.js"],
output: {
path: …Run Code Online (Sandbox Code Playgroud) javascript ×2
angular ×1
asynchronous ×1
babeljs ×1
ecmascript-6 ×1
express ×1
node.js ×1
reactjs ×1
rxjs ×1
typescript ×1