gpt4 book ai didi

javascript - 优化 Node.js 中的 API 请求

转载 作者:行者123 更新时间:2023-12-04 11:46:45 25 4
gpt4 key购买 nike

我在 Node.js 中有一个 API。我的路线看起来像

exports.getUserList = (req, res, next) => {
User.find().sort({ name: 1 }).then(users => {
res.json({
status: 'success',
users
});
}).catch(next);
};

如示例所示,我使用 .catch(next) .但这是正确的方法吗?路线不应该总是打印json吗?

所以我正在考虑做类似的事情
exports.getUserList = (req, res, next) => {
User.find().sort({ name: 1 }).then(users => {
res.json({
status: 'success',
users
});
}).catch(err => {
res.json({
status: 'error',
msg: err
});
});
};

但它不应该是 res.status(some_status_code).json({}) ?

在错误处理方面,一个简单的 API 通常是如何执行的?

如果我在代码中使用 undefined variable (即导致语法错误)怎么办?我应该用 JSON 错误来处理它,还是应该确保我不做草率的编码? :-D

另外,这是打印 json 的最快方法吗?我的意思是,我应该使用 User.find().lean() ?我应该做一些缓存吗?将我的 API 存储在普通网站上是否更聪明,或者是否有针对这种情况优化的 API 服务器?

最佳答案

您是否尝试过异步/等待功能和成功和错误的自定义响应?
这里的例子:
responseHandler.js

// use this for success
function successResponse(message, data) {
const success = {
success: true,
message: message,
data: data
}
return success
}

// use this as middleware error handler
function errorResponse(err,req,res,next) => {
return res.status(err.status || 500).json({
success: false,
message: err.message
})
}

module.exports = {
successResponse,
errorResponse
}
myRouter.js
const { successResponse } = require('./responseHandler')

exports.getUserList = async (req, res, next) => {
await User.find().sort({ name: 1 }).then(users => {
res.status(200).json(
successResponse(`data user`, users)
)
}).catch(err => {
return err
});
};

关于javascript - 优化 Node.js 中的 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com