【发布时间】:2021-12-27 00:45:01
【问题描述】:
API在insomnia Tool上执行成功,响应成功。但是,在我的浏览器上,它没有以成功状态响应,而是将状态显示为 204 并且(已取消)控制台上也没有错误消息。尽管处于 204 & 取消状态,测试数据也成功添加到数据库中。服务器在本地主机上运行。问题是尽管如此,我没有收到预期的响应“statusCode”:200, "message": "用户添加成功"
感谢任何帮助!谢谢!
客户端 API 调用
import axios from "axios";
let addUser = () => {
axios
.post(`http://localhost:3000/users/signup`, {
firstName: "testFirstName",
lastName: "testLastName",
email: "testEmail@gmail.com",
password: "testPassword",
})
.then((res) => {
console.log(res);
console.log(res.data);**
})
.catch((e) => {
console.log(e);
});
};
return (
<form>
...
<button type="submit" onClick={addUser}>submit</button>
...
</form>
);
服务器端
const express = require("express");
const userRouter = express.Router();
const { User } = require("../../models");
const bcrypt = require("bcrypt");
userRouter.post("/signup", async (req, res) => {
// get req body
const { firstName, lastName, email, password } = req.body;
//validate incoming request
try {
const user = User.build({
firstName,
lastName,
email,
password,
});
await user.validate();
} catch (e) {
res.status(400).json({
statusCode: 400,
message: "validation failed",
details: e.errors[0].message,
});
return;
}
//encrypt the password with bcrypt
const saltRounds = 10;
try {
let hash = await bcrypt.hash(password, saltRounds);
// update database
let user = await User.create({
firstName,
lastName,
email,
password: hash,
});
// respond to the request
res.status(200).json({
statusCode: 200,
message: "User added Succcessfully",
data: user,
});
} catch (e) {
res.status(500).json({
statusCode: 500,
message: "Internal Server Error",
details: e.errors[0].message,
});
}
});
在我的 (nodeJS) 主服务器 Index.JS 文件中,我启用了所有 CORS 请求
...
const cors = require("cors");
app.use(cors());
app.use(express.json());
app.listen(3000, async () => {
console.log("http://localhost:3000/");
try {
await db.sequelize.sync({ alter: true });
} catch (e) {
console.log(`Database not connected due to error ${e}`);
}
});
app.use("/users", userRouter); // Mount the router as middleware at path /user
app.use((req, res) => {
res.status(404).json({
msg: " file not found",
});
});
...
【问题讨论】:
-
你在失眠时发送什么标题?你应该在代码中做同样的事情
-
为什么会有退货? return 不应大写
-
@A.Zaveri 可以分享调用
addUser的UI代码 -
@Andy addUser 被 onClick 事件调用