monorepo-cli
Version:
基于 yarn v2 berry 的 monorepo 项目的创建
94 lines (86 loc) • 2.28 kB
Plain Text
const fastify = require('fastify');
const path = require('path');
const config = require('./config');
let logger = { name: '{{ name }}' };
if (process.env.NODE_ENV === 'development') {
// eslint-disable-next-line
const stream = new (require('pino-smart/stream'))();
logger.level = 'debug';
logger.stream = stream;
stream.pipe(process.stdout);
} else {
logger.level = 'info';
logger.file = '/www/wwwlogs/{{ name }}.log';
}
// Instantiate Fastify with some config
const app = fastify({
// 查看日志的方式 tail -f -n 200 {{ name }}.log | pino-pretty -c -t SYS:standard
logger: logger,
pluginTimeout: 10000,
});
{{#mysql}}
// mysql数据库
app.register(require('fastify-knex-sql'), {
connection: config.mysql
});
{{/mysql}}
{{#mongo}}
// mongoose
app.register(require('fastify-mongoose-next'), {
url: config.mongo,
models: require('./models'),
});
{{/mongo}}
{{#static}}
// 注册静态资源服务
app.register(require('fastify-static'), {
root: path.join(__dirname, '/public'),
prefixAvoidTrailingSlash: true,
prefix: '/',
});
{{/static}}
{{#view}}
// 注册模板渲染引引擎
app.register(require('point-of-view'), {
engine: {
nunjucks: require('nunjucks'),
},
root: path.join(__dirname, 'views'),
viewExt: 'html',
includeViewExtension: true,
});
{{/view}}
// 注册路由
app.register(
async (Server) => {
{{#session}}
Server.register(
async (ChildServer) => {
// 加入登录验证
ChildServer.register(require('fastify-auth-verify'), {
verify(session) {
return session.uid;
},
ignore: ['/api/login', '/api/system_monitor'],
});
ChildServer.register(require('./routes/api'));
},
{ prefix: '/api' },
);
{{/session}}
{{^session}}Server.register(require('./routes/api'), { prefix: '/api' });{{/session}}
Server.register(require('./routes/root'));
},
{ prefix: '/' }
);
// Start listening.
app.listen(
process.env.PORT || config.port || 3000,
process.env.NODE_ENV === 'development' ? '0.0.0.0' : '127.0.0.1',
(err) => {
if (err) {
app.log.error(err);
process.exit(1);
}
}
);