Node.js从白痴到入门(一):环境搭建

什么的Web?

简单的说它就是一个网站,相信网站这个词没有人会陌生的吧!如果需要专业的名称解释请出门左转打开百度搜索。
一个网站包括什么?一方面是我们看得到的东西,简单的说就是我们看到的页面,也就是你现在看到的这个页面,我们称之为前端;一方面是我们看不到的东西,也就是运行在网站服务器的后台的程序,负责数据交互和提供服务的,我称之为后端。前端和后端有响应的接口进行交互,也就是说我们跟前端交互,前端跟后端交互,后端提供服务反馈给前端呈现给我们。
那nodejs是什么?
nodejs的运行于服务器的后端程序的运行环境,用来解释执行js语言。
那nodejs处理好的数据怎么让用户看见?
nodejs将数据处理好后打包成html文件发送给浏览器,浏览器解析html文件显示到页面上。由于数据在打包处理方面繁杂,所以有人做了中间的框架专门负责这部分的处理,如Express。ejs是建立在Express之上的模版,同样是为了简化前端和后端的数据交互而存在的,当然Express有很多的模版,这里使用ejs是因为ejs简单并且比较像我之前学过的微软的asp语言(asp是运行在IIS之上的,前端后端代码写在同一个文件里面,没有什么前端后端的概念)。
简单的说它们之间的依赖关系是这样的:nodejs->Express->ejs。
如果不用这些东西能不能建网站?
当然可以,你完全可以直接监听80端口,然后自己解析html请求包,将响应的数据自己打包成html发回给客户端浏览器,同样能实现上面组合能实现的任何事,但你将需要付出很长很长很长的时间。
我们学习这些无非就是学习它们的约定,让我们高效快速的完成我们想要的东西,仅此而已。
有动车不坐,非得用脚跑完全是可以的,但如果你想要做动车那你就需要学习和遵循坐动车的规则和约定,如需要买票检票安检在指定时间和指定地点上车等等。
我希望的是大家在学习一门新的知识前先去了解整体,让自己先有一定的概念再去学习,这样学下来才是高效并且有意义的。

如果哪里说的不对,你特么顺着网线来砍我啊!

建立一个网站我们需要什么?

1、一个域名
2、一个服务器
我可以用ip地址访问啊。你特么的怎么不用183.232.231.172去打开百度啊。
服务器有两种,一种是虚拟主机,比较便宜,但功能受限制,只能做支持的环境,如ASP/PHP/.NET之类;另一种是云服务器,现在比较少直接买一台实体主机了,都是从集群中切分出一小块运算量相当的虚拟设备作为主机服务器,和虚拟主机不同,这可以选择操作系统,而后自己选择安装什么软件都任凭自己做主,我们要选择的就是这种。
如何得到一个域名?
网上很多域名商,找一个注册一下即可,一般可以选择在阿里云上的域名服务中注册一个,到时需要拍照备案,个人备案很简单,拍个照片上传即可。
如何让得到一个服务器
同样,阿里云,腾讯云都有,注册一个便是。
比如我在腾讯云里买了一个服务器:

在阿里买了一个域名:


将域名解析到服务器的公网ip地址即可。
接下来我们要开始学习nodejs了,我可以很负责任的告诉大家,以上对于接下来要讲的东西没有任何关系,哈哈。
开个玩笑,就是说学习的话服务器不是必要的,没有服务器在电脑本地也是可以搭的,服务器只是对外发布用的。

环境搭建

1、购买服务器后,选择系统镜像(centos7 x64),设置好帐号密码,使用putty连接服务器(CRT也是一样的):


2、使用命令安装工具

$yum install gcc gcc-c++ // 安装c/c++编译器,可能还需要make openssl-devel wget(这些一般系统都自带了)

3、下载nodejs源码
nodejs官方网站找到源码下载地址(右键->复制链接地址)


可以在服务器上创建目录(mkdir)来保存文件

$mkdir /workspace  
$cd /workspace // 切换到工作目录

使用wget命令下载nodejs源码包,如

$wget https://nodejs.org/dist/v6.11.4/node-v6.11.4.tar.gz // wget 下载地址

解压并编译安装

$tar -zvxf node-vx.xx.xx.tar.gz // 解压
$cd node-vx.xx.xx // 转到源码目录
$./configure // 配置(默认配置)
$make install // 编译并安装

$node -v // 检查是否安装成功(查看node.js版本)


4、搭建本地测试环境
nodejs官方网站下载windows安装包(如果你的电脑是windows的话)。
下载VS Code(你用记事本也是可以的)。
新建test.js文件

var http = require('http');

http.createServer(function (request, response) { 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
    response.end('Hello World\n'); 
}).listen(80);

console.log('Server started');

使用命令行node命令运行test.js文件
node text.js


在浏览器上访问http://www.localhost/


如此基本的环境已经搭建完成了。
5、安装pm2
在命令行上执行node命令时程序是依赖终端窗口的,终端窗口关闭后程序也一起退出了网站也就不能访问了,我们需要的是启动后一直在后台运行,所以使用pm2运行node(pm2比forever要高端一些)。

// --registry 是指定源(国外的源大家都懂的)
$npm install -g pm2 --registry https://registry.npm.taobao.org // 安装pm2

pm2常用命令

命令 描述
pm2 start app.js 启动应用
pm2 list 列出所有应用
pm2 monit 查看资源消耗
pm2 describe [app id/name] 查看某一个应用状态
pm2 logs 查看所有日志
pm2 restart [app id/name] 重启应用
pm2 stop [app id/name] 停止应用
pm2 delete [app id/name] 删除应用
pm2 web 开启api访问
其它 pm2官网

使用WinSCP登录服务器将前面创建的test.js上传到服务器(SFTP)。

$pm2 start node test.js


访问网站

此时一个最简易的网站已经搭建完毕了。
6、安装git项目管理工具(非必需)
CentOS安装最新版git
在github上取得tar.gz下载地址,(v2.14.1.tar.gz)

$wget [下载地址]  // 下载git源码
$tar zxvf xxx.tar.gz  // 解压
$yum  groupinstall "Development Tools" // 安装开发者工具包(可能不需要)

安装编译依赖库

$yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel libcurl-devel expat-devel 

编译安装

$make prefix=/usr/local/git all
$make prefix=/usr/local/git install
$echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
$source /etc/bashrc

检查安装结果

$git --version

远程项目服务器
码云上注册帐号,创建仓库,取得仓库的HTTPS地址。
当然,可以将仓库直接建在服务器上。
安装本地git图形化工具
下载安装SourceTree
克隆远程(码云的HTTPS)工程代码。
同样服务器上也克隆码云上的工程代码(代码修改后需要重新启动)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容