【发布时间】:2017-10-03 06:25:57
【问题描述】:
简介
我刚刚开始使用 MERN Stack,目前正在尝试将数据从位于 RegisterModal.js 中的表单发布到 server.js
index.html 文件从渲染 App.js 的 index.js 获取其内容,并根据单击的按钮渲染不同的组件。 (这是我的理解)
其中一个是 RegisterModal.js,我正在尝试将此表单中的数据发布到 server.js
这两个文件的代码都位于下面,我的项目结构如下。 (其余代码位于githubhttp://github.com/yenvanio/testapp)
错误
我得到的错误是“无法发布到 /register”,控制台给我一个未找到的错误。
项目结构
- .idea
- build
- node_modules
- public
- index.html
- server.js
- src
- components
- AdminLoginModal.js
- PopUp.js
- RegisterModal.js
- UserLoginModal.js
- App.js
- index.js
- package.json
代码
server.js
var express = require('express');
var cors = require('cors');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var app = express();
var schema = new Schema({
user: [
{
username: String,
password: String,
email: String,
}
]
}, {
collection: 'users'
});
var Model = mongoose.model('Model', schema);
mongoose.connect('mongodb://localhost:27017/dbName');
app.use(bodyParser.urlencoded({
extended:true
}));
app.use(bodyParser.json());
app.post("/register", function(request, response){
var username = request.body.username;
var password = request.body.password;
var email = request.body.email;
console.log("Post Received: %s %s %s", username, password, email);
});
var port = process.env.API_PORT || 3000;
// app.use('/api', router);
app.listen(port, function(){
console.log("Running on port 3000")
})
RegisterModal.js
import React, { Component } from 'react';
class RegisterModal extends Component
{
render() {
return(
<div>
<form method="post" action="/register">
Email Address:<br/>
<input type="text" name="email"/><br/>
Username:<br/>
<input type="text" name="username"/><br/>
Password:<br/>
<input type="password" name="password"/><br/>
<input type="submit" value="Register"/>
</form>
</div>
);
}
}
export default RegisterModal;
【问题讨论】:
-
发帖时是不是没有登陆服务器?您需要在端点中发送某种响应,例如
response.send('posted!'); -
嘿 Rob,感谢您的回复,我已更新我的帖子以包含我收到的错误。我希望你现在能更容易地帮助我。
-
嘿Heroselohim,感谢您的提示。我会改的
标签: javascript node.js forms express post