A. nodejs zlib 怎么把几个压缩过的文件解压拼接
我请求管用所结束httpvar http = require("http"),
zlib = require("zlib");
function getGzipped(url, callback) {
// buffer to store the streamed decompression
var buffer = [];
http.get(url, function(res) {
// pipe the response into the gunzip to decompress
var gunzip = zlib.createGunzip();
res.pipe(gunzip);
gunzip.on('data', function(data) {
// decompression chunk ready, add it to the buffer
buffer.push(data.toString())
}).on("end", function() {
// response and decompression complete, join the buffer and return
callback(null, buffer.join(""));
}).on("error", function(e) {
callback(e);
})
}).on('error', function(e) {
callback(e)
});
}
getGzipped(url, function(err, data) {
console.log(data);
});
2. 尝试添加encoding: null给传递给选项request避免载体转换字符串并保持二进制缓冲区
3. 工作示例(使用节点请求模块)gunzips响应function gunzipJSON(response){
var gunzip = zlib.createGunzip();
var json = "";
gunzip.on('data', function(data){
json += data.toString();
});
gunzip.on('end', function(){
parseJSON(json);
});
response.pipe(gunzip);
}
全码:
4. 像@Iftah说设置encoding: null 完整例(少错误处理):request = require('request');
zlib = require('zlib');
request(url, {encoding: null}, function(err, response, body){
if(response.headers['content-encoding'] == 'gzip'){
zlib.gunzip(body, function(err, dezipped) {
callback(dezipped.toString());
}
} else {
callback(body);
}
});
B. nodejs怎么启动服务
webstorm怎么启动nodejs的调试和服务器1.安装:npminstall-gnode-inspector
2.启动debug模式(单独命令行):
node-debug(该命令默认8080端口)
node-debug--web-port1984(定义任意端口)
3.访问chromedebugdevTools
路径如:;port=5858
4.启动gulp或者grunt服务(具有gulp或者grunt任务时)
node--debug-brk$(whichgrunt)server(这种模式使用在第一次初始化执行的代码)
node--debug$(whichgrunt)server(这种模式使用在初始化之后监听的node代码)
如何用命令行开启nodejs搭建web服务器?
首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node-v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npminstallxxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
varhttp=require('http');
varurl=require('url');
varpath=require('path');
varfs=require('fs');
vardir,arg=process.argv[2]||''//命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
//比如使用命令nodeserverdebug,意思就是debug文件夹与server.js文件同级
//且你想以debug文件夹启动web服务
http.createServer(function(req,res){
varpathname=__dirname+url.parse(req.url).pathname;
[linux运维]?1、下载最新node.js二进制源码安装包(29MB),V8.2.1更新于2017年7月20日?
wget?-c?
wget是一个Linux下载文件的工具,centos自带。
wget?-c?是断点续传下载方式,后面的URL就是提供下载文件的地址
默认获取的文件地址在/root目录下,命令pwd显示当前目录.
??2、安装必要的编译软件?吖米yum?install?gcc?gcc-c++?yum?=?Yellow?dog?Updater,?Modified。改良黄狗更新器,centos自带智能包管理器。?中途询问,输入y:在线下载安装?d:只下载不安装?N:不下载不安装
Is?this?ok?[y/d/N]?:y
??3、解压源码tar?-zxvf?node-v8.2.1.tar.gz当前目录/root/就会多一个node-v8.2.1的文件夹-z:透过gzip的支持进行压缩/解压缩:此时文件名最好为*.tar.gz-x:解压缩的功能-v:在压缩/解压缩的过程中,将正在处理文件名显示出来
f?filename:-f后面要立刻接被处理的文件名.
??4、编译node源码包?1)进入到node源码包解压目录?cd?node-v8.2.1指定NodeJS安装位置./configure?--prefix=/usr/local/node?不指定prefix,则可执行文件默认放在/usr?/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr?/local/share。你要卸载这个程序,要么在原来的make目录下用一次make?uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。?执行安装文件,足足等了40多分钟
make??make?install
??4、添加环境变量???创建并打开新文件?不存在node.sh文件?[root@localhost?node-v8.1.3]#?vim?/etc/profile.d/node.sh??输入node安装位置的bin目录所在位置?export?PATH=$PATH:/usr/local/node/binESC?输入:wq?提示:?命令输入错了vim-bash:?rt:?command?not?found-bash:?vim:?command?not?found[解决]i.?那么如何安装?vim?呢?输入rpm?-qa|grep?vim?命令,?如果?vim?已经正确安装,会返回下面的三行代码:root@server1?[~]#?rpm?-qa|grep?vimvim-enhanced-7.0.109-7.el5vim-minimal-7.0.109-7.el5vim-common-7.0.109-7.el5?如果少了其中的某一条,比如?vim-enhanced?的,就用命令?yum?-y?install?vim-enhanced?来安装:yum?-y?install?vim-enhanced?如果上面的三条一条都没有返回,?可以直接用?yum?-y?install?vim*?命令yum?-y?install?vim*
??使用su?root?source?/etc/profile.d/node.sh?=.?/etc/profile.d/node.sh?[不间断运行nodejs服务]?npm?install?forever?-g?forever?start?app.js
nodejs服务后台持续运行三种方法forever是一个nodejs守护进程,完全由命令行操控。forever会监控nodejs服务,并在服务挂掉后进行重启。
1、安装forever
npminstallforever-g
2、启动服务
serviceforeverstart
3、使用forever启动js文件
foreverstartindex.js
4、停止js文件
foreverstopindex.js
5、启动js文件并输出日志文件
foreverstart-lforever.log-oout.log-eerr.logindex.js
6、重启js文件
foreverrestartindex.js
7、查看正在运行的进程
foreverlist
pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能
npminstall-gpm2
pm2startapp.js??//启动
pm2startapp.js-imax?//启动使用所有CPU核心的集群
pm2stopapp.js???//停止
pm2stopall??????//停止所有
pm2restartapp.js??//重启
pm2restartall?????//重启所有
pm2delete?app.js???//关闭
运行pm2startup,即在/etc/init.d/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务。
运行pm2save,会将当前pm2所运行的应用保存在/root/.pm2/mp.pm2下,当开机重启时,运行pm2-root服务脚本,并且到/root/.pm2/mp.pm2下读取应用并启动。
nodejs自带node.js自带服务nohub,不需要安装别的包。
缺点:存在无法查询日志等问题,关闭终端后服务也就关闭了,经测试是这样的。
nohupnode***.js
linux如何后台运行node服务?在你的任意目录输入命令:npminstallpm2-g
1.找到全局环境PATH路径
输入命令:echo$PATH
回车后:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选/usr/local/bin
2:找到pm2的安装路径
在上面输入npminstallpm2-g全局安装时
/usr/sbin/nodejs/bin/pm2-/usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2是安装路径(你的可能和我的不一样)
3.好了都找到了,
就重要的一步要开始了,睁大你的双眼。
命令为:ln-s/usr/sbin/nodejs/bin/pm2/usr/local/bin/(注意空格)
格式:ln-s空格pm2安装路径空格系统环境路径
OK,搞定,接下来验证一把…
[root@iZmwyb7v60px1zZ~]#pm2list
回车...
$pm2startapp.js#启动app.js应用程序
$pm2startapp.js–name=”api”#启动应用程序并命名为“api”
$pm2startapp.js–watch#当文件变化时自动重启应用
$pm2startscript.sh#启动bash脚本
$pm2list#列表PM2启动的所有的应用程序
$pm2monit#显示每个应用程序的CPU和内存占用情况
$pm2show[app-name]#显示应用程序的所有信息
$pm2logs#显示所有应用程序的日志
$pm2logs[app-name]#显示指定应用程序的日志
$pm2stopall#停止所有的应用程序
$pm2stop0#停止id为0的指定应用程序
$pm2restartall#重启所有应用
$pm2reloadall#重启clustermode下的所有应用
$pm2gracefulReloadall#
$pm2deleteall#关闭并删除所有应用
$pm2delete0#删除指定应用id0
$pm2scaleapi10#把名字叫api的应用扩展到10个实例
$pm2reset[app-name]#重置重启数量
$pm2startup#创建开机自启动命令
$pm2save#保存当前应用列表
$pm2resurrect#重新加载保存的应用列表
$pm2update#Saveprocesses,killPM2andrestoreprocesses
$pm2generate#
window下nodejs环境怎么配置下载node.msi安装文件包,里面包含了node.js和npm;双击node.msi,选择安装路径和npm;
在node的安装的根目录,也就是nodejs文件夹下新建两个名字为node_cache、node_global文件夹
设置环境变量:变量名:NODE_PATH值:D:ProgramFiles odejs ode_global ode_moles。注意:本教程nodejs安装在D:ProgramFiles目录下,所以环境变量就这样设置的;
找个项目文件夹,再里面新建一个service文件夹
注意:此路径不能有中文。再在里面新建一个UTF-8编码的js文件
在js文件里面增加入下代码
启动nodejs服务,window键+R,输入cmd然后回车
在黑窗口中输入nodeG: odejsservice est.js
注意:结尾不用加分号;
回车看结果;
成功:
失败:
NodeJS在windows下怎么启动守护进程使用Win系统中自带的wscript命令来创建守护进程。
下面是大致的步骤:
一、创建一个watch.vbs文件,只有一行内容:
请注意末尾的0,表示以隐藏模式运行,否则会产生一个CMD窗口。
二、主程序main.js:
实际上,上方最后一行代码中,wscript会确保vbs中启动的进程脱离终端控制。
三、最后,在CMD中nodemain,会发现任务管理器中有两个node.exe进程,关掉当前的CMD,进程列表中仍有个node.exe驻留着,它即守护进程。
C. 启动node服务
ctrl+c后可以重启服务不node1、在命令控制台按Ctrl+C,终止当前所运吵渗租行的代码
2、然后继续nodefilename.js,即可重启node.js
自动重启Node服务
NodeSupervisor原本是用于服务器上Node.js应用崩溃的时候,自动重新启动。当然它也可以喊雹监控你的项目的js文件变化,自动重启来方升兆便调试。
安装sudonpminstallsupervisor-g,或者使用sudocnpminstallsupervisor-g。
使用方法:
1、关掉之前开启的node服务。
2、然后在项目路径下使用命令:supervisoryourApp.js来开启Supervisor。它会开启node服务,并不停的检测文件变化,当JS文件内容修改后,自动重启服务,很方便。
如何用命令行开启nodejs搭建web服务器?首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node-v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npminstallxxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
varhttp=require('http');
varurl=require('url');
varpath=require('path');
varfs=require('fs');
vardir,arg=process.argv[2]||''//命芦裂袭令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
//比如使用命令nodeserverdebug,意思就是debug文件夹与server.js文件同级
//且你想以debug文件夹启动web服务
http.createServer(function(req,res){
varpathname=__dirname+url.parse(req.url).pathname;
[linux运维]?1、下载最新node.js二进制源码安装包(29MB),V8.2.1更新于2017年7月20日?
wget?-c?
wget是一个Linux下载文件的工具,centos自带。
wget?-c?是断点续传下载方式,后面的URL就是提供下载文件的地址
默认获取的文件地址在/root目录下,命令pwd显示当前目录源带.
??2、安装必要的编译软件?吖米yum?install?gcc?gcc-c++?yum?=?Yellow?dog?Updater,?Modified。改良黄狗更新器,centos自带智能包管理器。?中途询问,输入y:在线下载安装?d:只下载不安装?N:不下载不安装
Is?this?ok?[y/d/N]?:y
??3、解压源码tar?-zxvf?node-v8.2.1.tar.gz当前目录/root/就会多一个node-v8.2.1的文件夹-z:透过gzip的支持进行压缩/解压缩:此时文件名最好为*.tar.gz-x:解压缩的功能-v:在压缩/解压缩的过程中,将正在处理文件名显示出来
f?filename:-f后面要立刻接被处理的文件名.
??4、编译node源码包?1)进入到node源码包解压目录?cd?node-v8.2.1指定NodeJS安装位置./configure?--prefix=/usr/local/node?不指定prefix,则可执行文件默认放在/usr?/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr?/local/share。你要卸载这个程序,要么在原来的make目录下用一次make?uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。?执行安装文件,足足等了40多分钟
make??make?install
??4、添加环境变量???创建并打开新文件?不存在node.sh文件?[root@localhost?node-v8.1.3]#?vim?/etc/profile.d/node.sh??输入node安装位置的bin目录所在位置?export?PATH=$PATH:/usr/local/node/binESC?输入:wq?提示:?命令输入错了vim-bash:?rt:?command?not?found-bash:?vim:?command?not?found[解决]i.?那么如何安装?vim?呢?输入rpm?-qa|grep?vim?命令,?陪兄如果?vim?已经正确安装,会返回下面的三行代码:root@server1?[~]#?rpm?-qa|grep?vimvim-enhanced-7.0.109-7.el5vim-minimal-7.0.109-7.el5vim-common-7.0.109-7.el5?如果少了其中的某一条,比如?vim-enhanced?的,就用命令?yum?-y?install?vim-enhanced?来安装:yum?-y?install?vim-enhanced?如果上面的三条一条都没有返回,?可以直接用?yum?-y?install?vim*?命令yum?-y?install?vim*
??使用su?root?source?/etc/profile.d/node.sh?=.?/etc/profile.d/node.sh?[不间断运行nodejs服务]?npm?install?forever?-g?forever?start?app.js
node实现自启动服务对于nodeapp.js启动服务的话,遇到不可预测的错误时,服务停止后会影响网站或者系统手者的正常运行,,服务的自启动就显得袜薯棚非常的重要。
npminstall-gnodemon
安装结束后的使用方告则法
nodemonapp.js
服务启动成功。
linux如何后台运行node服务?
在你的任意目录输入命令:npminstallpm2-g
1.找到全局环境PATH路径
输入命令:echo$PATH
回车后:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选/usr/local/bin
2:找到pm2的安装路径
在上面输入npminstallpm2-g全局安装时
/usr/sbin/nodejs/bin/pm2-/usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2是安装路径(你的可能和我的不一样)
3.好了都找到了,
就重要的一步要开始了,睁大你的双眼。
命令为:ln-s/usr/sbin/nodejs/bin/空袜衡pm2/usr/local/bin/(注意空格)
格式:ln-s空格pm2安装路径空格系统环境路径
OK,搞定,接下来验证一把…
[root@iZmwyb7v60px1zZ~]#pm2list
回车...
$pm2startapp.js#启动app.js应用程序
$pm2startapp.js–name=”api”#启动应用程序并命名为“api”
$pm2startapp.js–watch#当文件变化时自动重启应用
$pm2startscript.sh#启动好销bash脚本
$pm2list#列表PM2启斗做动的所有的应用程序
$pm2monit#显示每个应用程序的CPU和内存占用情况
$pm2show[app-name]#显示应用程序的所有信息
$pm2logs#显示所有应用程序的日志
$pm2logs[app-name]#显示指定应用程序的日志
$pm2stopall#停止所有的应用程序
$pm2stop0#停止id为0的指定应用程序
$pm2restartall#重启所有应用
$pm2reloadall#重启clustermode下的所有应用
$pm2gracefulReloadall#
$pm2deleteall#关闭并删除所有应用
$pm2delete0#删除指定应用id0
$pm2scaleapi10#把名字叫api的应用扩展到10个实例
$pm2reset[app-name]#重置重启数量
$pm2startup#创建开机自启动命令
$pm2save#保存当前应用列表
$pm2resurrect#重新加载保存的应用列表
$pm2update#Saveprocesses,killPM2andrestoreprocesses
$pm2generate#
node本地服务启动报Error:listenEADDRINUSE,80端口被占用解决方法1.第一步,根据端口号岁吵查找对应的进程号
netstat-ano|findstr80//列出进程极其占用的端口,且包含80
2.第二步,据进程号寻找进程名称
tasklist|findstr8156
3.找到是node.exe占用巧雀厅后,杀孝隐死进程
taskkill/f/imnode.exe
node是怎么启服务下面是以express框胡穗衫架为例,启动node服务的三种方法(已测试),使用族基express安装的文件如下:
一、使用node命令启动
nodeserver/bin/www1
二、使用webStorm启动
1,打开webStorm,点裤腔击运行(run)下的编辑配置(EditConfiguration)
2,添加新的配置
3,命名并选择要执行的文件
选择要执行bin/www文件
4,启动node服务
三、pm2启动
1安装pm2
cnpmi-gpm21
是否安装成功,可检查版本pm2-v
2启动服务
pm2startserver/bin/www1
pm2是一个带有负载均衡功能的Node应用的进程管理器,pm2启动后,我们不需要另开一个窗口或停掉服务,便可以进行后续操作?
pm2可以通过配置,启动多个node服务,pm2list可以查看当前启动的所有node服务
D. ubuntu下怎么安装nodejs
方法/步骤
1
首先从nodejs官方网站下载对应版本的nodejs包。
本篇我们要安装的ubuntu14.04 64位系统上,固选择linux 64位版本。
2
然后将包上传到ubuntu14.04服务器上。
通过xftp工具上传,待上传进度为100%时候执行下一步操作。
3
进入上传包所在目录。(进入目录命令为:cd +目录的绝对路径)
在终端窗口输入tar -zxvf +文件名,对压缩包进行解压操作。
4
将解压后的文件夹内容移动到我们想要的目录。
本篇,我们将文件夹内容移动到了/usr/local/node目录下。
然后更改node文件夹内容权限为755。
5
然后进入node文件夹目录。进入bin目录下。
执行脚本./node -v 或者./npm -v都可正常显示版本信息。
我们对node基本安装已经完成。
6
如果我们想在任意路径下都能执行node命令,则需配置环境变量。
首先执行命令nano ~/.bashrc,对此文件进行修改。
7
在文件末尾,添加两行
export NODE=/usr/local/node
export PATH=${NODE}/bin:$PATH
然后执行保存。
8
执行命令source ~/.bashrc。
然后任意路径下执行node -v可以看到已经可以返回版本信息了。
至此,nodejs基础环境全部配置完毕。
E. 镐庝箞瀹夎匩ode.js锛岀涓涓绋嫔簭璇ユ庝箞鍐
涓銆佸畨瑁卬ode.js
1銆佸彲浠ラ夋嫨铡诲畼鏂http://nodejs.org/阃夋嫨涓涓鐗堟湰杩涜屼笅杞斤纴褰撶劧瑕佷笅杞界ǔ瀹氱増链
2銆佷篃鍙浠ヤ娇鐢ㄨ繖閲岀殑鍦板潃锛http://nodejs.org/dist/v0.10.15/node-v0.10.15.tar.gz
阃氲繃浣跨敤linux镄剋get锻戒护杩涜屼笅杞斤纴灏卞儚杩欐牱
sudo wget http://nodejs.org/dist/v0.10.15/node-v0.10.15.tar.gz
3銆佷笅杞藉畬鎴愬悗锛岃В铡嬬缉锛屽氨镀忚繖镙
sudo tar zxvf node-v0.10.15.tar.gz
4銆佽繘鍏node铡嬬缉鐩褰曚笅锛屼娇鐢ㄨ繖镙风殑锻戒护
sudo ./configure --prefix=浣犺佸畨瑁呯殑鐩褰
sudo make
sudo make install
浜屻佺涓涓绀轰緥绋嫔簭锛
渚跨敤涓涓缂栬緫鍣锛屾瘆濡倂im锛屾垨钥呬綘镓镡熸倝镄勭紪杈戝櫒锛屽弬镦ф垜镄勬牱瀛愬啓涓嫔备笅镄勪唬镰侊纴淇濆瓨涓篽ellonode.js
var result = 0;
for(var i = 1;i<=10;i++) {
result += i;
}
process.stdout.write("Hello Node.js, 鎴戝凡缁忎娇鐢ㄤ綘甯鎴戠畻闄や简1鍒10镄勫拰绛変簬"+result+", 鐪熸槸铡夊炽");
闾d箞鏄杩欐牱镓ц屽畠锛屾瘆鎴戠殑node瀹夎呯洰褰曟槸/opt/node锛岄偅涔堟垜灏遍渶瑕佽繖镙锋墽琛岋纴
sudo /opt/node/bin/node hellonode.js
F. 如何用命令行开启nodejs搭建web服务器
首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;