
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
让你只专注在业务和展现
项目地址:http://gitlab.corp.qunar.com/fed/qxf
npm install qxf -g --registry=http://npmrepo.corp.qunar.com
其他包依赖公司内部的npm源,你需要先安装qnpm,安装方式
通过alias命令
alias qnpm="npm --registry=http://npmrepo.corp.qunar.com --cache=$HOME/.npm/.cache/qnpm --userconfig=$HOME/.qnpmrc"
或者在~/.bash_profile或~/.zshrc中增加如下配置:
# alias for qnpm
alias qnpm="npm --registry=http://npmrepo.corp.qunar.com --cache=$HOME/.npm/.cache/qnpm --userconfig=$HOME/.qnpmrc"
然后运行:
source ~/.bash_profile # base环境
source ~/.zshrc # zsh环境
Qxf 使用说明
===========================
qxf init 初始化一个项目
qxf dev 启动项目本地服务
qxf initserver [-w <webappFoler> -s <serviceName>] 服务器目录和服务初始化
qxf initschema qdr发布系统schema初始化
qxf remote -r <serverlist> -c <remoteCommand> 远程执行命令
qxf sync [server] 同步文件到服务器
1. 在项目目录里执行 `qxf init`
2. 运行 `qnpm install`
3. 运行 `bin/dev`
新申请的服务器,在申请服务器时可以选择预装QXF,这样就不用到服务器上做任何安装了
如果是原来的服务器或者申请的时候忘了选择预装,需要执行一下步骤安装:
sudo yum install nodejssudo npm install qxf -g --registry=http://npmrepo.corp.qunar.com*执行第2步,如果原来的服务器上已经安装过 node的其他版本,需要先将之前的版本卸载,如果是采用sudo yum install q-node 安装的,卸载方法为运行 sudo yum remove q-node -y
配置web环境有如下三种方式(推荐使用第3种方式配置):
ssh 登录服务器,执行 sudo qxf initserver按照提示输入所需参数,或者执行 sudo qxf initserver -w <web目录名称> -s <service名称>
在本地可以ssh登录到服务器的终端执行
qxf remote -r '<服务器列表>' -c 'sudo qxf initserver -w <webappFolder> -s <serverName>'
按照说明配置工程里的package.json中的schema内容,在本地可以ssh登录到服务器的终端执行
qxf initserver --config
服务器列表支持格式:
l-home[m-n].fe.cn5
l-home[x,y,z].fe.cn5
l-home[m-n].fe.cn5,l-home[x,y,z].fe.cn5,...
使用
var qversion = require('@qnpm/q-version');
// 初始化版本号
qversion.parse(path.join(__dirname, 'refs')); // 参数为ver目录所在路径
使用
var qtemplate = require('@qnpm/q-template');
// 设置模板引擎
qtemplate(app, {
views: __dirname + "/views", // 总模板目录
layouts: 'layouts', // layout模板目录,默认views/layouts
versions: qversion.versions()
});
日志组件支持多进程工程,由主进程统一负责记录日志,支持不同的路由记录不同的日志文件,配置如下:
{
logFiles: [
{
type: 'track', // 名称
route: ['/track.htm', '/timetrack.htm'], // 路由,支持express风格路由
appenders: [ // log4js appenders配置
{
"type": "file",
"filename": "track.log",
"category": "track",
"level": "LOG",
"layout": {
"type": "messagePassThrough"
}
}
]
}
]
}
使用
初始化
主进程:
logger.init("master", [option]);
// [option]为多日志文件配置,如上
工作进程:
var logger = require('@qnpm/q-logger');
logger.init('worker', [option]); // 初始化日志系统
接口:
logger.error(); // 记录错误
logger.info(); // 记录普通日志
使用
var exception = require('@qnpm/q-exception');
exception.init(logger); // 初始化异常捕获系统,需传入logger用作错误记录
// 捕获异步异常,放到所有中间件前面
app.use(exception.catchAsync());
// 捕获同步异常,放到所有中间件后面
app.use(exception.catchSync());
使用
var healthcheck = require('@qnpm/q-healthcheck');
// healthcheck 发布时有用
healthcheck.check(app, path.join(__dirname, 'healthcheck.html')); // 传入healthcheck的路径
使用
var qmonitor = require('@qnpm/q-monitor');
qmonitor.addCount('监控指标名');
qmonitor.addTime('监控指标名', '时间');
使用
var opts = {
// CPU核数
numCPUs: require('os').cpus().length,
// 端口
port: app.get('port'),
// 子进程收到父进程消息后父进程执行方法
workerMessage: function (msg, workers) {
},
ready: function(workers) {
}
};
multiprocess.listen(app, opts);
FAQs
FE Node development solution
We found that qxf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.