【发布时间】:2021-02-18 22:42:21
【问题描述】:
这可能非常简单,但我真的很困惑。 当我通过邮递员或前端点击我的节点 /verify 端点时,当 /verify 端点中有非“响应”值/函数时,将自动发回来自后端的 200 响应。
例如,如果我让函数变得非常简单:
这将返回 200 响应,即使我似乎没有在任何地方设置“响应”。
router.post('/verify', (request, response, next) => {
code = code.toUpperCase();
});
这不会发回 200 响应(我认为不应该,因为我没有设置任何响应)
router.post('/verify', (request, response, next) => {
const { code } = request.body;
console.log(code);
});
谁能向我解释发生了什么事?我希望需要像下面的示例那样引用响应来推送响应
response.status(401).send("Lorem ipsum");
或
response.json(token);
谢谢
整个页面(不包括不应影响此的其他 API 调用)
const poolArray = require('../../db');
const { Router } = require('express');
const router = Router();
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
router.post('/verify', (request, response, next) => {
// let { code } = request.body; //if commented out will send 200 back automatically, if not commented out won't pass 200 back automatically
code = code.toUpperCase();
})
module.exports = router;
我的 index.js:
const { Pool } = require('pg');
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
const { langleyUser, langleyHost, langleyDatabase, langleyPassword, langleyPort, onboardingUser, onboardingHost, onboardingDatabase, onboardingPassword, onboardingPort } = require('../secrets/db_configuration');
const langley = new Pool({ user: langleyUser, host: langleyHost, database: langleyDatabase, password: langleyPassword, port: langleyPort });
const onboarding = new Pool({ user: onboardingUser, host: onboardingHost, database: onboardingDatabase, password: onboardingPassword, port: onboardingPort });
const poolArray = {
langley,
onboarding
}
module.exports = poolArray;
中间件
const jwt = require('jsonwebtoken');
module.exports = (request, response, next) => {
try {
console.log(' in check auth request');
const decoded = jwt.verify(request.headers.authorization, 'bFm3Vp4Ga@cG6W');
request.userData = decoded;
next();
} catch (error) {
return response.status(404).json({
message: 'Authentication failed'
})
}
};
【问题讨论】:
-
我预计第一个 sn-p 会崩溃,因为
code没有在任何地方定义。 Express 将处理此异常并通常发回 500 错误,而不是 200 成功。你能向我们展示你展示这种行为的完整程序吗? -
已更新代码,不确定我还能添加什么。如果您有想要查看的文件,请告诉我
-
可以添加注册中间件的部分吗?例如,
app.use(something) -
已添加,谢谢
标签: javascript node.js