我有一个普通的Node.js服务器,并且正在将对服务器的请求(希望这是正确的词汇)推送到我的快速应用程序中。
server.js
=IF(SUBTOTALS(3,[data]:[data])=0,MIN(INDICE(DESREF([@row index],-1,0),1):DESREF([row index],-1,0))-1,SUBTOTALS(3,[@[data]:[data]]))
createExpressApp.js
require('dotenv').config();
const port = process.env.PORT || 5000;
const logger = require('./logger.js');
const database = require('./database/createDatabase.js')({ logger });
const app = require('./app/createExpressApp.js')({ logger, database });
const server = require('http').createServer();
server
.on('request', app)
.on('listening', function () {
const addr = this.address();
const bind =
typeof addr === 'string' ? `pipe ${addr}` : `port ${addr.port}`;
logger.info(`Listening on ${bind}`);
console.log(`Server started on ${port}`);
})
.on('error', function (error) {
if (error.syscall !== 'listen') throw error;
const addr = this.address() || { port };
const bind =
typeof addr === 'string' ? `pipe ${addr}` : `port ${addr.port}`;
switch (error.code) {
case 'EACCES':
logger.error(`${bind} requires elevated privileges`);
process.exit(1);
case 'EADDRINUSE':
logger.error(`${bind} is already in use`);
process.exit(1);
default:
throw error;
}
})
.listen(port);
当我请求获取用户时,Postman挂起并指出套接字超时。
我添加了:
const express = require('express');
const bodyParser = require('body-parser');
const expressWinston = require('express-winston');
const router = require('./routes/createRouter.js')();
const errorHandler = require('../middleware/error');
const cookieParser = require('cookie-parser');
module.exports = ({ database, logger }) =>
express()
.use(
expressWinston.logger({
winstonInstance: logger,
msg:
'{{res.statusCode}} {{req.method}} {{req.url}} {{res.responseTime}}ms',
meta: false,
})
)
.use(bodyParser.urlencoded({ extended: true }))
.use(bodyParser.json())
.use(cookieParser)
.use((req, res, next) => {
req.base = `${req.protocol}://${req.get('host')}`;
req.logger = logger;
req.db = database;
return next();
})
.use(errorHandler)
// .use(express.static('./public'))
.use('/api', router)
.use((error, req, res, next) => {
logger.error(error, error);
res.status(error.status || 500).json({ error });
});
它仍然挂起,这对我来说有点新。我希望根据这篇中型文章https://medium.com/@carlos.illobre/nodejs-express-how-to-organize-your-routes-in-very-big-applications-and-why-controllers-are-evil-e202eea497f4尝试一下。但是,我无法让服务器响应我的请求。
这里的大问题是:该代码有什么问题吗?如果没有,那么我将不得不开始对实际的获取请求进行故障排除。
谢谢!