javascript - 使用 react 获取 API 响应,Express.js 不会使用 console.log 显示任何结果
问题描述
我有一个登录表单,它使用fetch
. 在客户端,当我想显示 fetch 调用的结果时,它什么也没显示(并且它永远不会到达数据回调)。我似乎没有收到任何错误,但我知道数据已成功发送到后端。
这是 Express.js 服务器代码:
const express = require('express');
const User = express.Router();
const bcrypt = require('bcrypt');
const user = require('../Models/user');
这是编辑的
function loginRouteHandler(req, res) {
user.findOne(
{
where: {
userName: req.body.userName,
},
},
)
.then((data) => {
if (bcrypt.compareSync(req.body.password, data.password)) {
req.session.userName = req.body.userName;
req.session.password = req.body.password;
console.log(req.session);
res.status(200).send('Success!');
} else {
res.status(400).send('some text');
}
});
}
User.route('/').get(getRouteHandler);
User.route('/register').post(postRouteHandler);
User.route('/login').post(loginRouteHandler);
module.exports = User;
这是 fetch 调用:
fetch('http://localhost:4000/login',{
method: 'POST',
headers: {
'Accept': 'application/json,text/plain, */*',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userName: this.state.userName,
password: this.state.password,
}),
}).then((response)=>{
if(response.ok){
console.log(response)
}
else {
console.log("a problem")
}
}).then((data)=>{
console.log(data)
});
解决方案
ok
从 response.ok 中删除
删除 .then((data)=>{ console.log(data) });
并检查控制台日志。
}).then((response)=>{
if(response){
console.log(response)
}
else {
console.log("a problem")
}
}).then((data)=>{
console.log(data)
});
推荐阅读
- cakephp - Cakephp 4 Url->使用数组构建会引发找不到路由错误,但不是字符串
- google-ads-api - 在 Google Ads 中提醒未获批准的产品脚本
- python - python类型错误/打印到Popen错误
- datetime - 在 BigQuery 中 DateTime 被强制为 UnixTime
- python - FuncAnimation 不会迭代更新
- docker - Dockerfile VOLUME 指令清除数据
- powershell - Powershell 切片
- sql-server - 使用从特定数字开始的连续编号更新 T-SQL,并首先按其他列排序
- javascript - 初始化后无法读取 null 的属性“长度”
- javascript - CYPRESS - 查找并生成包含一些文本的表行