app.js 1.1 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();
});

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);

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}`);
});