[英]I checked this backend code using Postman. It sometimes works properly. But, sometimes, it does not work. What's the matter with this code?
[英]I check API endpoints using POSTMAN. But its post HTTP method is not working properly
我使用 POSTMAN 检查 API 端点。 但其后 HTTP 方法无法正常工作。 这是用户登录后端代码。 从 mongo DB 数据库中获取数据并验证用户登录。 验证后用户可以轻松登录系统。
这是用户 Dao.js 文件。
用户DAO.js
const user = require('./index').db("newDb").collection("user");
const bcrypt = require('bcrypt');
var ObjectId = require('mongodb').ObjectId;
const register = ({userName, password, age, city}) => {
bcrypt.hash(password, 10, function(err, hashPassword) {
const insertResult = user.insertOne({userName, password, hashPassword, age, city});
return insertResult;
});
};
const login = async({userName, password}) => {
const filteredDocs = await user.findOne({ userName: userName });
if(filteredDocs){
if(filteredDocs.password === password){
return {success:true, msg: "Login Successfull"};
}else{
return {success:false, msg: "Password Incorrect Try Again"};
}
}else{
return {success:false, msg: "Username Incorrect Try Again"};
}
};
module.exports = {register, login};
这是 user.api 文件。
user.api.js
const {register, login} = require('../dal/user.dao');
const registerStudent = async({userName, password, age, city}) => {
const user = {
userName,
password,
age,
city
}
return await register(user);
};
const loginUser = async({userName, password}) => {
const user = {
userName,
password
}
return await login(user);
};
module.exports = {registerStudent, loginUser};
这是 userRouter.js 文件。
用户.Router.js
const Router = require('@koa/router');
const userRouter = new Router();
const {registerStudent, loginUser} = require('../api/user.api');
userRouter.post("/user/add", async ctx => {
const data = ctx.request.body;
const student = registerStudent(data);
ctx.body = {success:true};
ctx.status = 201;
ctx.set('Content-Type', 'application/json');
});
userRouter.post("/user/login", async ctx => {
const data = ctx.request.body;
const student = loginUser(data);
ctx.body = {status: student};
ctx.status = 201;
ctx.set('Content-Type', 'application/json');
});
module.exports = userRouter;
您似乎正在设置对请求的响应...
尝试这个:
userRouter.post("/user/add", async (ctx, res) => {
const data = ctx.request.body;
const student = registerStudent(data);
res.json({success:true});
});
userRouter.post("/user/login", async (ctx, res) => {
const data = ctx.request.body;
const student = loginUser(data);
res.json({status:student};
});
在用户路由器文件中,请在这些方法之前使用'await'关键字。
registerStudent(data);
loginUser(data);
在示例中,您可以使用
userRouter.post("/user/add", async ctx => {
const data = ctx.request.body;
const student = await registerStudent(data);
ctx.body = {success:true};
ctx.status = 201;
ctx.set('Content-Type', 'application/json');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.