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

  验证是否安装成功:

[email protected]:~/nodejs-workspace/01$ node -v
v0.12.1
[email protected]-team:~/nodejs-workspace/01$ npm -version
2.5.1

参考https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

二、Hello World程序

[email protected]:~/nodejs-workspace/01$ cat app.js
var http = require(‘http‘);
http.createServer(function(req, res){
    // content header
    res.writeHead(200, { ‘Content-Type‘:‘text/html‘ });
    // write message adn signal communication is complete
    res.end(‘Hello World!‘);
}).listen(process.env.PORT || 8124);
// }).listen(8124);

console.log(‘Server running on 8124‘);

  使用node app.js后,可在浏览器地址栏输入:http://localhost:8124/ 以查看结果。

  如果直接在命令行使用node app.js,它会占用我一个命令行窗口。有时,我不想其占用那个窗口,我们可以将node程序转为后台运行,那就的使用nohup命令来帮忙了。用法如下:

[email protected]:~/nodejs-workspace/01$ nohup node app.js &
[2] 7451
[1]   Terminated              nohup node app.js > ./log
[email protected]-team:~/nodejs-workspace/01$ nohup: ignoring input and appending output to ‘nohup.out’

[email protected]-team:~/nodejs-workspace/01$ 

  或者:将输入重定向到当前目录的log文件中。

[email protected]:~/nodejs-workspace/01$ nohup node app.js > ./log &
[1] 7422
[email protected]-team:~/nodejs-workspace/01$ nohup: ignoring input and redirecting stderr to stdout

[email protected]-team:~/nodejs-workspace/01$ cat log
Server running on 8124

  问题来了,我如何杀死正在运行的node app.js呢?

  当然,需借助GNU/Linux shell命令的帮忙:ps和kill(nohup也是GNU/Linux shell命令)。

[email protected]:~/nodejs-workspace/01$ ps -ef | grep node
root      2830     1  0 09:53 ?        00:00:00 /sbin/mount.ntfs /dev/sdc2 /media/mesogene/Richard -o rw,nosuid,nodev,uhelper=udisks2,uid=1000,gid=1000,dmask=0077,fmask=0177
root      2875     1  0 09:53 ?        00:00:00 /sbin/mount.ntfs /dev/sdc1 /media/mesogene/Richard1 -o rw,nosuid,nodev,uhelper=udisks2,uid=1000,gid=1000,dmask=0077,fmask=0177
mesogene  3628  3590  0 09:54 pts/0    00:00:00 node
mesogene  7451  7244  0 10:30 pts/27   00:00:00 node app.js
mesogene  7468  7244  0 10:32 pts/27   00:00:00 grep --color=auto node
[email protected]-team:~/nodejs-workspace/01$ kill 7451
[email protected]-team:~/nodejs-workspace/01$ 

扩展:ps与kill命令

一、ps命令比较复杂,用Unix、BSD和GNU三种使用风格,下面主要列出简单用法,下一次单独写ps用法。以下是ps的两种常用方法:

  ps -ef(Unix风格),UID代表:启动进程的用户、PID:进程号、PPID:父进程号、C:进程生命周期CPU利用率...

[email protected]:~$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:52 ?        00:00:01 /sbin/init
root         2     0  0 09:52 ?        00:00:00 [kthreadd]
root         3     2  0 09:52 ?        00:00:00 [ksoftirqd/0]
root         4     2  0 09:52 ?        00:00:00 [kworker/0:0]
root         5     2  0 09:52 ?        00:00:00 [kworker/0:0H]

  ps ax(BSD风格)输出的第一列是ProcessID即PID,进程号。第三列是进程当前状态(S代表睡眠,SW代表在睡眠和等待,R代表在运行中)

[email protected]:~$ ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 /sbin/init
    2 ?        S      0:00 [kthreadd]
    3 ?        S      0:00 [ksoftirqd/0]
    4 ?        S      0:00 [kworker/0:0]
    5 ?        S<     0:00 [kworker/0:0H]
    7 ?        S      0:01 [rcu_sched]
    8 ?        S      0:00 [rcuos/0]
    9 ?        S      0:00 [rcuos/1]

二、kill与killall(结束进程)

kill使用方法是:kill  [PID],kill只能通过进程号PID结束进程。

[email protected]:~$ kill 7422

killall使用方法:killall [ProcessName],killall只能通过进程名来结束进程。killall支持通配符。

[email protected]:~$ killall http*      #结束所有以http开头的进程。
时间: 2024-11-16 20:54:59

Nodejs随笔(一):Hello World!的相关文章

Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!

在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: [email protected]:~$ chmod u+x nodejsScriptName.js 随后,即可在终端中以./nodejsScriptName.js运行nodejs脚本.

Nodejs随笔(三):全局对象之global

首先,进入node REPL: [email protected]:~$ node > 查看global对象,发现其他全局对象(包括Buffer.require对象)以及全局方法都包含在global对象接口中: > console.log(global); { global: [Circular], process: { title: 'node', version: 'v0.12.1', moduleLoadList: [ 'Binding contextify', 'Binding nat

Nodejs随笔(三):全局对象之process

process是全局对象,在任何地方都可以访问,而且它是EventEmitter的一个实例(关于EventEmitter后面会提到). process对象对一些标准的输入输出流进行了封装,如stdin(标准输入).stdout(标准输出)和stderr(标准错误输出).其中,stdin和stdout支持异步操作,前者可读,后者可写.stderr是一个同步可阻塞流. 使用stdin和stdout来读取和写入数据: process.stdin.setEncoding('utf-8'); proces

进阶之初探nodeJS

一.前言 在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器. 今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node. so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS". 好了,侃了这多,那么我们即将实现一个

nodejs调试工具node-inspector入门随笔

最近打算玩玩node. 众所周知,在前端,调试代码有一众天然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起.但是到了node,情况就不一样了,js 代码不再运行在单纯的浏览器中,而是直接运行在操作系统里,摇身一变成为了一等公民.从此,这node下的js与浏览器就不再是难兄难弟分不开,而是牛郎与织女,中间隔着一条大银河! 几年前有同事使用nodejs写了一个邮件服务反向代理,做一些分发和细微处理.用户量不大也不小,但是经常crash.好在node事件机制比较完善,

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

【nodejs】

我已经安装好了nodejs(采用安装包的方式),并在idea中安装好nodejs插件,具体参考我的随笔: http://www.cnblogs.com/yujihang/p/7011356.html http://www.cnblogs.com/yujihang/p/6764193.html 接下来的学习,都将在IntelliJ IDEA软件中完成.  Node.js 应用是由哪几部分组成 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块. 创建服务器

NodeJS旅程 : express - nodejs MVC 中的王牌

express 正如ASP.NET MVC 在作为.net平台下最佳的 Mvc框架的地位一样,express在 node.js 环境也有着相同的重要性.在百度上 "nodejs express" 会跑出一大堆关于怎么用开发 express 来开发mvc文章 ,相同的内容在这里我不想重复叙述,关于express的入手文章大家到百度上搜就好了.这只是一篇随笔不是教程, 我是想用ASP.NET MVC与 express 来在他们擅长的方面上做一些比较,从中看看我们作为开发人员能得到什么,哪一

Nodejs+Express 搭建 web应用

简单的记录下关于如何使用nodejs+Express 极速搭建一个web应用. 项目所需,要用到nodejs,那就去学咯.简单的看了下 七天学会NodeJS,Node.js 教程.发现其实好简单的,分分钟上手,这里只是简单记录,nodejs 对数据库的操作不做详细介绍.  看七天不存在的,呵呵.大概的过了一遍,然后开始干活. 首先显得有nodejs环境吧,nodejs下载地址,安装完毕后,检查版本号,看是否成功安装. huangenaideMacBook-Pro:x-wallet huangen