javascript - ReferenceError:未定义电子邮件
问题描述
嗨,请帮助一个苦苦挣扎的开发者。
我整天都在努力解决这个问题,但无济于事。基本上我想做的就是从我的 AddUsers 类中发布,并将其存储到我的 sql 数据库中。这是一个非常简单的查询,但让我变得更好!状态会随着变化而更新,但似乎是 server.js 的问题(错误包含在帖子底部)
服务器.js
app.post("/admin-Add-Users", function(req, res) {
var request = new sql.Request();
// query to the database and get the records
request.query(
"insert into Login (email, password) values ('" +
req.body.email +
"','" +
req.body.password +
"')",
function(err, recordset) {
if (err) console.log(err);
}
);
res.send({ message: "Success" });
});
添加用户类
class AddUsers extends React.Component {
constructor() {
super();
this.state = { users: [], email: "", password: "" };
this.onSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
const data = { email: this.state.email, password: this.state.password };
fetch("/admin-Add-Users", {
method: "POST", // or 'PUT'
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(data => {
console.log("Success:", data);
})
.catch(error => {
console.error("Error:", error);
});
}
render() {
console.log(this.state.users);
return (
<div>
<LoginForm></LoginForm>
<form>
<input
type="text"
placeholder="email"
value={this.state.email}
onChange={e => this.setState({ email: e.target.value })}
/>
<input
type="text"
placeholder="password"
value={this.state.password}
onChange={e => this.setState({ password: e.target.value })}
/>
<input type="submit" onClick={this.onSubmit} />
</form>
</div>
);
}
}
ReferenceError: email is not defined
更新:在尝试了我得到的建议后,我现在恢复了一个新错误。
Error: SyntaxError: Unexpected token < in JSON at position 0
解决方案
您的 React 应用程序似乎没有任何问题。
问题在于您的 API 端,您在
insert
没有实际读取请求 json 内容(电子邮件和密码)字段的情况下制定查询。
您可以在生成查询之前添加以下行。
// create sql obj
...
var email = req.body.email;
var password = req.body.password;
...
// your query
推荐阅读
- node.js - 是否有任何可以处理重复 (RRULE) 事件的节点阅读器?
- c++ - 对 OpenCV 图像表示感到困惑
- c++ - 关于构造函数调用顺序和虚拟基类的混淆
- java - 使用带有杰克逊的过滤器将树结构序列化为 JSON
- angular - 调用服务后如何调用不同的 Ionic toast?
- java - 如何在另一个正在运行的类中调用函数?
- python - 不同的值会触发 Jupyter Notebook 内 Pandas 数据框中的 SettingWithCopyWarning
- node.js - 管道node.js ServerResponse对象在强大事件结束后抛出写入
- html - 数据在 HTML 中从列流向行
- c++ - 避免基于反向范围的 for 循环实现的悬空引用