Nodejs随笔(一):Hello World!
声明:本人用的是Ubuntu 14.04 LTS 系统。
一、Nodejs安装:
<1>直接apt-get安装,最简单:sudo apt-get install nodejs
<2>编译安装
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build_essential openssl libssl-dev pkg-config
wget http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz
tar -zxvf node-v0.12.2-linux-x64.tar.gz
cd node-v0.12.2-linux-x64
./configure
make
sudo make install
验证是否安装成功:
mesogene@mesogene-team:~/nodejs-workspace/$ node -v
v0.12.1
mesogene@mesogene-team:~/nodejs-workspace/$ npm -version
2.5.
参考:https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
二、Hello World程序
mesogene@mesogene-team:~/nodejs-workspace/$ cat app.js
var http = require('http');
http.createServer(function(req, res){
// content header
res.writeHead(, { 'Content-Type':'text/html' });
// write message adn signal communication is complete
res.end('Hello World!');
}).listen(process.env.PORT || );
// }).listen(8124); console.log('Server running on 8124');
使用node app.js后,可在浏览器地址栏输入:http://localhost:8124/ 以查看结果。
如果直接在命令行使用node app.js,它会占用我一个命令行窗口。有时,我不想其占用那个窗口,我们可以将node程序转为后台运行,那就的使用nohup命令来帮忙了。用法如下:
mesogene@mesogene-team:~/nodejs-workspace/$ nohup node app.js &
[]
[] Terminated nohup node app.js > ./log
mesogene@mesogene-team:~/nodejs-workspace/$ nohup: ignoring input and appending output to ‘nohup.out’ mesogene@mesogene-team:~/nodejs-workspace/$
或者:将输入重定向到当前目录的log文件中。
mesogene@mesogene-team:~/nodejs-workspace/$ nohup node app.js > ./log &
[]
mesogene@mesogene-team:~/nodejs-workspace/$ nohup: ignoring input and redirecting stderr to stdout mesogene@mesogene-team:~/nodejs-workspace/$ cat log
Server running on
问题来了,我如何杀死正在运行的node app.js呢?
当然,需借助GNU/Linux shell命令的帮忙:ps和kill(nohup也是GNU/Linux shell命令)。
mesogene@mesogene-team:~/nodejs-workspace/$ ps -ef | grep node
root : ? :: /sbin/mount.ntfs /dev/sdc2 /media/mesogene/Richard -o rw,nosuid,nodev,uhelper=udisks2,uid=,gid=,dmask=,fmask=
root : ? :: /sbin/mount.ntfs /dev/sdc1 /media/mesogene/Richard1 -o rw,nosuid,nodev,uhelper=udisks2,uid=,gid=,dmask=,fmask=
mesogene : pts/ :: node
mesogene : pts/ :: node app.js
mesogene : pts/ :: grep --color=auto node
mesogene@mesogene-team:~/nodejs-workspace/$ kill
mesogene@mesogene-team:~/nodejs-workspace/$
扩展:ps与kill命令
一、ps命令比较复杂,用Unix、BSD和GNU三种使用风格,下面主要列出简单用法,下一次单独写ps用法。以下是ps的两种常用方法:
ps -ef(Unix风格),UID代表:启动进程的用户、PID:进程号、PPID:父进程号、C:进程生命周期CPU利用率...
mesogene@mesogene-team:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root : ? :: /sbin/init
root : ? :: [kthreadd]
root : ? :: [ksoftirqd/]
root : ? :: [kworker/:]
root : ? :: [kworker/:0H]
ps ax(BSD风格)输出的第一列是ProcessID即PID,进程号。第三列是进程当前状态(S代表睡眠,SW代表在睡眠和等待,R代表在运行中)
mesogene@mesogene-team:~$ ps ax
PID TTY STAT TIME COMMAND
? Ss : /sbin/init
? S : [kthreadd]
? S : [ksoftirqd/]
? S : [kworker/:]
? S< : [kworker/:0H]
? S : [rcu_sched]
? S : [rcuos/]
? S : [rcuos/]
二、kill与killall(结束进程)
kill使用方法是:kill [PID],kill只能通过进程号PID结束进程。
mesogene@mesogene-team:~$ kill
killall使用方法:killall [ProcessName],killall只能通过进程名来结束进程。killall支持通配符。
mesogene@mesogene-team:~$ killall http* #结束所有以http开头的进程。
Nodejs随笔(一):Hello World!的更多相关文章
- Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!
在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: mesogene@mes ...
- Nodejs随笔(三):全局对象之process
process是全局对象,在任何地方都可以访问,而且它是EventEmitter的一个实例(关于EventEmitter后面会提到). process对象对一些标准的输入输出流进行了封装,如stdin ...
- Nodejs随笔(三):全局对象之global
首先,进入node REPL: mesogene@mesogene-team:~$ node > 查看global对象,发现其他全局对象(包括Buffer.require对象)以及全局方法都包含 ...
- 进阶之初探nodeJS
一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知 ...
- nodejs调试工具node-inspector入门随笔
最近打算玩玩node. 众所周知,在前端,调试代码有一众天然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起.但是到了node,情况就不一样了,js 代码不再运行在单纯 ...
- nodejs学习随笔
<一> 简述nodejs (社区:www.npmjs.com)可查找一些第三方模块. nodejs是可以让js运行在浏览器之外的服务器端的平台,实现了文件系统.模块.包.操作系统API.网 ...
- Nodejs初识随笔
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node.js 单线程运行,不 ...
- nodejs连接mysql并进行简单的增删查改
最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...
- nodejs + socket.io + redis 新手上路
最近要更新网站架构了,决定转入 nodejs + socket.io + redis 方式. 战斗刚开始: 网上的文章太松散,我根据各个网友的分享进行整理 ,让大家可以方便上手. 进入node.js之 ...
随机推荐
- bat命令学习笔记
1.一般在开始声明 setlocal enabledelayedexpansion 设置本地为延迟扩展.其实也就是:延迟变量,全称延迟环境变量扩展,使得批处理能够感知到变量的动态变化,在运行过程中给变 ...
- 如何使用TestFlight进行App构建版本测试(转)
在日常的开发当中,当一个项目在开发过程中或者完成准备上线,都需要我们进行真机测试,否则不可能开发完了就直接扔到了App,等上线了再下载看看,这都是不可能的.那么说到真机测试,大家肯定会想到弄一个99美 ...
- eclipse搭建Log4J日志环境
在hibernate使用的日志标准都为slf,slf可以看作为它的接口,因此需要找到它的实例,为我们做日志.我们选择使用log4j为实例. 1. 为防止冲突,先将slf4j-nop的jar包(它也是s ...
- ChartControl简单的圆柱案例
由于工作需要,最近学习了DevExpress控件中的ChartControl,并做了简单尝试,通过程序动态添加数据源到chartControl控件中,绘制了如下的条形图. 条形图的颜色等外观可在cha ...
- js获取网页高度和宽度(备份)
网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...
- eclipse 使用maven 创建web3.1项目
最近刚刚开始学java, 在框架搭建的过程中, 遭遇了诸多的坑, 和各种各样的不解与困惑, 由于没有什么java的相关基础, 看到各种xml的配置文件, 当真是一个头两个大. 并且并不知道那个配置到底 ...
- [原创]NT系统信息察看工具 : NtInfoGuy
原文链接:[原创]NT系统信息察看工具 : NtInfoGuy 对于windows的内部,我们有太多的东西需要了解,认知.我们非凡的.从不知足的探求本性驱使我们要 拨开迷雾得见青天.太多的木马,病毒, ...
- vs2005 测试 lua环境
(1)添加文件核路径 (2)库文件路径 (3)main.cpp #include <stdio.h>#include <string.h> extern "C&quo ...
- JQuery DataTables Editor---页面内容修改&&数据库信息修改 (1)
我们使用jquery datatables 不光是为了对数据的展示,同时需要对数据惊行简单的操作,这个操作分为两个部分:1.页面内容的修改:2.对应的数据库信息的修改. 前一篇博文介绍了页面级的操作, ...
- SQL Server 数据库的自动选项
自动选项影响SQL Server 可能会自动进行的操作,所有的这些都是bool值,值为on 或off 1. auto_close: 当这个为on 时.数据库在最后一个用户退出后完全关闭,这样数据库就不 ...