node.js切近实战之linux部署

author author     2022-08-03     363

关键词:

之前的话我们的项目都是跑在windows上,今天我们要将我们的程序跑到linxu机器上。在看linux部署之前,我们先看一下node.js类似于asp.net mvc的过滤器或者叫拦截器。在app.js中我们加入如下代码

var beforeRequest = function (req, res, next) {
    if (req.originalUrl == ‘/‘ 
        || req.originalUrl == ‘/login‘ 
        || req.originalUrl == ‘/config‘ 
        || req.originalUrl == ‘/user‘ 
        || req.originalUrl == ‘/logInout‘) {
        next();
    }
    else if (session.user == null || session.user == undefined || !session.user.UserID) {
        res.redirect(‘/login‘);
    }
    else {
        next();
    }
}

app.use(beforeRequest);

此时当有请求到达时,就会先判断用户是否登录,如果未登录,则跳转至登陆界面。但是要确保该代码在注册路由之前。

app.use(‘/‘, routes);

OK,接下来我们在看一下node.js平台上log4js的使用。

var log4js = require(‘log4js‘);
var log4jsConfig = require(‘./framework/config/log4js_config.js‘);
log4js.configure(log4jsConfig.config);

ok,接下来我们看一下log4js的配置

exports.config = 
{
    appenders: [
        {
            type: ‘console‘,
            category: "console"
        }, {
            type: ‘file‘,
            filename: ‘logs/info.log‘, 
            maxLogSize: 1024,
            backups: 1,
            category: ‘log_info‘
        }, {
            
            type: "datefile",  
            filename: "logs/error",
            alwaysIncludePattern: true,  
            pattern: "-yyyy-MM-dd-hh.log",
            category: "log_error"
        }, {
            category: "log_trace",  
            type: "datefile",  
            alwaysIncludePattern: true,  
            pattern: "-yyyy-MM-dd-hh.log",
            filename: "logs/trace"
        }
    ],
    replaceConsole: true,
    levels:  
    {
        console: "ALL",  
        log_error: "ALL",  
        log_info: "ALL",
        log_trace: "ALL"
    }
}

OK,经过这样的配置之后,我们看一下记录的log。

技术分享

OK,其实在app.js中我们对记录进行了设置。

var loggerInfo = log4js.getLogger(‘log_info‘);
var loggerError = log4js.getLogger(‘log_error‘);
var loggerTrace = log4js.getLogger(‘log_trace‘);
app.use(log4js.connectLogger(loggerInfo, { format: ‘:method :url‘ }));

定义了三种log,error分别记录404和500。

app.use(function (req, res, next) {
    loggerError.error(req.url);
    var err = new Error(‘Not Found‘);
    err.status = 404;
    err.message = "The resource you are look for is not found!";
    next(err);
});

app.use(function (err, req, res, next) {
    res.status(err.status || 500);
    loggerError.error(err.message);
    res.render(‘error‘, {
        message: err.message,
        error: {}
    });
});

而info用来记录console.log,经过设置

replaceConsole: true

使得console的内容可以在窗口输出,而不是仅写入log文件。

[2016-08-01 14:17:01.074] [INFO] log_info - GET /user/file?pageIndex=0&pageSize=10&isShared=false&fileName=
[2016-08-01 14:17:02.408] [INFO] log_info - GET /page?q=s
[2016-08-01 14:17:02.841] [INFO] log_info - GET /docshare
[2016-08-01 14:17:04.674] [INFO] log_info - GET /user/sharedfile?userId=&pageIndex=0&pageSize=10&fileName=&startDate=&endDate=
[2016-08-01 14:17:08.921] [INFO] log_info - GET /page?q=u
[2016-08-01 14:17:11.713] [INFO] log_info - GET /page?q=r
[2016-08-01 14:17:11.919] [INFO] log_info - GET /file/auth
[2016-08-01 14:17:13.628] [INFO] log_info - GET /user/file?pageIndex=0&pageSize=10&isShared=true&startDate=Fri%20Jul%2001%202016%2000:00:00%20GMT+0800%20(й)&endDate=Mon%20Aug%2001%202016%2014:17:11%20GMT+0800%20(й)&fileName=
[2016-08-01 14:17:21.512] [INFO] log_info - GET /page?q=c

而且格式就是上面设置的http method+URL

app.use(log4js.connectLogger(loggerInfo, { format: ‘:method :url‘ }));

OK,关于log4js就说这么多,毕竟只是个工具,大家自己下去看api就行了。

好了,接着我们将改程序部署至linux我的centos5。

技术分享

有没有注意到我桌面的ftp服务器192.168.80.1,没错就是我在win10搭建的ftp服务器。OK,我们将node.js程序放到ftp,我们再拷贝至centos。

技术分享

ok,我们把所有要用的东西都通过此方法拷贝至centos。

技术分享

我们需要的是部署程序,mongodb,node.js for linux。好的,完成后,我们先要启动mongodb

技术分享

接着我们通过node命令启动程序。

技术分享

启动成功,我们在window上访问一下

技术分享

有的人说了,你这个图我怎么知道是不是linux的ip。我现在就给你看两张图,一个是ip,

一个是centos的火狐浏览器。

技术分享

我们再看一下linux下火狐的浏览效果

技术分享

这个浏览器估计有些老,不支持html5。OK最后我们登录进去看系统是否正常。

技术分享

木有什么问题,ok,今天就到这里。后面会多多的玩linux,什么.net core什么玩意的我们也玩玩。


本文出自 “技术创造价值” 博客,请务必保留此出处http://leelei.blog.51cto.com/856755/1847040

node.js切近实战之excel在线(文件&文件组)

最近西安的天气真他妈的热,感觉还是青海的天气美,最高温28度。上周逛了青海湖,感觉还是意犹未尽,其实我还是很喜欢去一趟西藏的,但是考虑到花费也没人陪我,我暂时放弃这个念头。计划去一下重庆或者甘南,也许是... 查看详情

node.js实战之node多进程与jxcore打包深入运用(代码片段)

@[toc]JXcore打包Jxcore是一个支持多线程JS发布版本的节点,基本上不需要对现有代码进行任何更改,可以直接在多线程中运行,具有线程安全性。本文主要介绍jxcore的封装功能。下载jxcore安装包并解压缩。解压目录中提供了JX二进... 查看详情

实战系列之node.js玩转java

这些年以来,Node.js的兴起,JavaScript已经从当年的“世界最被误解的语言”变成了“世界最流行的语言”。且其发展之势,从语言本身的进化,库和包的增长,工具支持的完善,star项目和领域解决方案的涌现,平台... 查看详情

云原生之docker实战使用docker部署linux系统监控平台netdata

【云原生之Docker实战】使用Docker部署Linux系统监控平台Netdata一、Netdata介绍1.netdata简介2.netdatar特点二、检查本地Docker环境1.宿主机系统版本2.检查Docker版本3.检查docker状态三、安装docker-compose1.下载docker-compose二进制包2.给文件增加... 查看详情

云原生之docker实战使用docker部署linux面板服务mdserver-web

【云原生之Docker实战】使用Docker部署Linux面板服务mdserver-web一、mdserver-web介绍1.mdserver-web简介2.mdserver-web功能二、检查本地Docker环境1.检查本地Docker版本2.检查Docker状态3.检查dockercompose版本三、下载mdserver-web镜像四、部署mdserver-web... 查看详情

zabbix实战之部署篇zabbix使用snmp监控linux系统

【Zabbix实战之部署篇】Zabbix使用SNMP监控Linux系统一、SNMP协议介绍1.SNMP协议简介2.SNMP协议特点二、实践环境介绍三、检查Zabbix监控平台环境1.检查Zabbix相关组件容器状态2.检查Zabbix的首页四、被控端安装SNMP监控工具1.检查被控端服... 查看详情

linux环境部署node.js

介绍先前在阿里云ECS上部署Node.js,碰到不少坑,都是自己不仔细造成的,所以准备再部署一遍,并记录下来。我将我的服务器重置了,这次选择的是CentOS7.464位,上次的是7.2的。使用到的工具:Xshell5,链接服务器;Xftp5,上传工... 查看详情

如何在 Ubuntu/Linux 中部署 Node.js 应用程序?

】如何在Ubuntu/Linux中部署Node.js应用程序?【英文标题】:HowtoDeployNode.jsappinUbuntu/Linux?【发布时间】:2017-09-0213:10:35【问题描述】:哪个是在.net框架下开发的,不使用docker?感谢您度过了愉快的时光。【问题讨论】:在.net框架中... 查看详情

node.js实战一文带你开发博客项目之登录(前置知识)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.js(一ÿ... 查看详情

node.js部署到服务器之后台守护进程管理器forever

我们不可能直接通过node命令来管理远程站点,这样无法保证网站的可持续运行。我们用Forever来解决这个问题,它可以将NodeJS应用以后台守护进程的方式运行,我们还可以将NodeJS应用设成随系统启动而自动运行。首先,安装Forever... 查看详情

jenkins实战之jenkins安装部署

      上一小节介绍了Jenkins安装(Linux/uninx平台),这节我们讲讲Jenkins界面操作(包括系统设置,工具安装,插件管理,系统升级,安全设置等等操作);      登录jenkins首页,分别有以... 查看详情

node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)

Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。1.安装node.js下载对应版本的,网址:Download|Node.js;进行傻瓜式安装:最后点击install... 查看详情

node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)

Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。 1.安装node.js下载对应版本的,网址:https://nodejs.org/en/download/;进行傻瓜式安装:最... 查看详情

云原生之docker实战使用docker部署宝塔面板

【云原生之Docker实战】使用Docker部署宝塔面板一、宝塔面板介绍二、检查本地docker环境1.检查系统版本2.检查内核版本3.检查docker版本三、下载宝塔镜像四、部署宝塔面板1.创建挂载目录2.创建宝塔容器3.查看宝塔容器状态五、访问... 查看详情

实战node.js之get/post请求在web应用架构在客户端的使用(代码片段)

@[toc]GET/POST请求在许多情况下,我们的服务器需要处理用户的浏览器,例如表单提交。get/post请求通常用于向服务器提交表单。varhttp=require(http);varurl=require(url);varutil=require(util);http.createServer(function(req,res)res.writeHead(200,Content-Type: 查看详情

linux实战之ssl自签名证书(代码片段)

Linux实战之SSL自签名证书Linux的openssl生成自签名证书部署一个简单的tomcat服务使用nginx代理实现ssl访问1、Linux生成自签名证书1.1、生成带密码的私有秘钥文件使用带密码的私有秘钥文件时在祁东nginx时需要输入密码[root@localhostssl]#o... 查看详情

在 Linux 服务器上的何处部署 node.js 应用程序?

】在Linux服务器上的何处部署node.js应用程序?【英文标题】:Wheretodeploynode.jsappsonaLinuxserver?【发布时间】:2012-06-0317:11:50【问题描述】:我在Linux服务器上运行4个独立的Node.js应用程序,具有不同的端口和前面的代理。由于我(... 查看详情

node.js实战一文带你开发博客项目之koa2重构(实现session开发路由联调日志)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情