Node.js 使API响应更快
我在express框架上有Node Js API,在sequelize上有MySQL数据库,而且我的API部署在生产模式下,但是我的API显示响应的时间太长了。我的API平均响应时间是900毫秒,太长了,我需要减少。我以异步方式调用API,但没有结果更改。我尝试了许多方法,但仍然没有结果更改。我在谷歌上搜索了很多次,但我发现同样的解决方案是异步运行的,所以我发布了这个问题,如果有人能帮我找到解决方案 APP.JS文件Node.js 使API响应更快,node.js,api,express,sequelize.js,Node.js,Api,Express,Sequelize.js,我在express框架上有Node Js API,在sequelize上有MySQL数据库,而且我的API部署在生产模式下,但是我的API显示响应的时间太长了。我的API平均响应时间是900毫秒,太长了,我需要减少。我以异步方式调用API,但没有结果更改。我尝试了许多方法,但仍然没有结果更改。我在谷歌上搜索了很多次,但我发现同样的解决方案是异步运行的,所以我发布了这个问题,如果有人能帮我找到解决方案 APP.JS文件 /** * load environment variables **
/**
* load environment variables
**/
if (process.env.NODE_ENV == 'production') {
require('dotenv').config({
path: './env/production/.env'
})
} else {
require('dotenv').config({
path: './env/development/.env'
})
}
const compression = require('compression');
var express = require('express');
var bodyParser = require('body-parser');
const PORT = process.env.PORT || 3080;
var logger = require('morgan');
const http = require('http')
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
var app = express();
http.globalAgent.maxSockets = Infinity
//folder public access
// Include Cors
var cors = require('cors')
app.use(cors())
app.use(logger('dev'));
// for parsing application/json
app.use(bodyParser.json());
// for parsing application/xwww-
app.use(bodyParser.urlencoded({
extended: true
}));
// Compress all HTTP responses
app.use(compression());
//Default route
app.get('/', function(req, res) {
res.status(200).json({
'uptime': process.uptime(),
'api_url': `${process.env.BASE_URL}:${PORT}/api/`
})
})
const commonFunction = require("./helpers/commonFunction");
//Authentication Middleware
app.use(function(req, res, next) {
if (process.env.API_TOKEN != req.headers.apitoken) {
res.status(401).json(commonFunction.errorBuilder(401, "Authentication Fail!"));
} else {
next()
}
});
app.use('/api', require('./routes/routes'));
// catch 404 and forward to error handlerz
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
http.createServer(app).listen(PORT, () => {
console.log(`Server running at ${process.env.BASE_URL}:${PORT}/`);
});
}
欢迎来到堆栈溢出!如果您想获得帮助,我们需要查看您的API正在执行的代码。@Arthuratout ok,我会向您展示,但我有app.js文件或routes.js或任何API代码。cb做什么?@Arthuratout回调排序表单不幸的是,这个问题实际上无法解决。。API请求的长时间延迟可能是由成千上万的原因造成的,从代码执行的繁重任务(例如,无论您在
cb
中做什么)、服务器计算机内存不足、网络资源不足、客户端资源不足、,等等。我建议您缩小问题的范围,如果您发现的是与代码相关的内容,请返回。
let getBuyerDashboard = async (req, res) => {
async.parallel({
category: await function(cb) {
// some code
cb(null, tmpArr)
},
ads: await function(cb) {
// some code
}
}, function(error, results) {
if (error) {
res.status(400).json(commonFunction.errorBuilder(400, error));
} else {
res.status(constants.SUCESS_OK).json({"success":constants.SUCESS_OK, "message":'success', "data":results})
}
});
}