app.js 1.19 KB
const express = require('express');
const bodyParser = require('body-parser');
const requestIp = require('request-ip');
const app = express();

const config = require('./common/config');
const logger = require('yoho-node-lib/lib/logger').init(config);
const crypto = require('yoho-node-lib/lib/crypto');

global.yoho = {
    logger,
    config,
    crypto
};

app.use(bodyParser.text({
    limit: '1024kb'
}));

app.use(function(req, res, next) {
    req.clientIp = requestIp.getClientIp(req);
    next();
});

try {
    const middleware = require('./middleware');

    app.get('/', (req, res) => {
        res.send('首页');
    });

    app.get('/apm/yas.gif', middleware.apm);

    // docker验证项目是否正常发布
    app.use('/node/status.html', (req, res) => {
        return res.status(204).end();
    });

    // 新方法
    app.get('/apm/yas2.gif', middleware.clientApm);
    app.post('/write', middleware.serverApm);
} catch (e) {
    logger.error(e);
}

app.use('*', (req, res) => {
    res.statusCode = 404;
    res.send();
});

app.use((err, req, res) => {
    logger.error('error:', err);
    res.send();
});

app.listen(config.port, () => {
    logger.info(`yoho apm start at ${config.port}`);
});