1 安装
sudo apt-get install nodejs
sudo apt-get install npm
2 第一个node服务
server.js
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
执行效果
![](https://img-blog.csdn.net/20170402211051456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWxiZXJ0Rmx5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3
让nodejs后台一直运行
node server.js &
root@iZ23hders1aZ:/flyer/node# ps -ef|grep node
root 3268 32432 0 20:28 pts/0 00:00:00 find / -name node
root 3325 32432 0 20:31 pts/0 00:00:00 node
root 3664 32432 0 20:50 pts/0 00:00:00 node
root 3861 32432 0 21:00 pts/0 00:00:00 node server.js
root 4142 32432 0 21:16 pts/0 00:00:00 grep --color=auto node
root@iZ23hders1aZ:/flyer/node# kill -9 3861
[6]+ Killed node server.js
root@iZ23hders1aZ:/flyer/node# node server.js &
[6] 4143
root@iZ23hders1aZ:/flyer/node# Server running at http://127.0.0.1:8888/
root@iZ23hders1aZ:/flyer/node#
root@iZ23hders1aZ:/flyer/node# ps -ef|grep node
root 3268 32432 0 20:28 pts/0 00:00:00 find / -name node
root 3325 32432 0 20:31 pts/0 00:00:00 node
root 3664 32432 0 20:50 pts/0 00:00:00 node
root 4143 32432 0 21:16 pts/0 00:00:00 node server.js
root 4146 32432 0 21:16 pts/0 00:00:00 grep --color=auto node
root@iZ23hders1aZ:/flyer/node#
ps
nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人。如何让nodejs应用当成服务,在后台执行呢?
最简单的办法:
$ nohup node app.js &
但是,forever能做更多的事情,比如分别记录输出和错误日志,比如可以在js中作为api使用。
$ sudo npm install forever -g #安装
$ forever start app.js #启动
$ forever stop app.js #关闭
$ forever start -l forever.log -o out.log -e err.log app.js #输出日志和错误
命令语法及使用 https://github.com/nodejitsu/forever
个人觉着forever的几个好处
1, daemon 不用自己写 2, 自动重启, 特别适合web项目 3, 进程管理
4 一个异常
throw er; // Unhandled 'error' event
events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:904:11) at Server._listen2 (net.js:1042:14) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at Object.<anonymous> (F:\socket\index.js:9:6) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474 at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10)
出现这种错误一般就是已经运行的另一个服务器使用了相同的端口,换一个端口就可以了。
5 安装express 模块
root@iZ23hders1aZ:/flyer/node# npm install express