美文网首页node.js让前端飞Web前端之路
Node.js从白痴到入门(一):环境搭建

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

作者: 云华兄 | 来源:发表于2017-10-22 23:03 被阅读310次

    什么的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连接服务器:


    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的话)。
    下载Sublime Text3(谁说记事本就不能写代码了?如果你想更方便点的话可以试试WebStorm)。
    新建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要高端一些)。
    $npm install -g pm2 // 安装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)工程代码。
    同样服务器上也克隆码云上的工程代码(代码修改后需要重新启动)。

    相关文章

      网友评论

      • 张利强:简单的说它们之间的依赖关系是这样的:nodejs->Express->ejs。

        这句话好别扭,箭头指向的才是被依赖的项目吧。nodejs<-Express<-ejs。
        云华兄:@张利强 是的,可能是个人习惯吧,我习惯是从出发点指到终点,也就是从基础到扩展。不过还是你的方式规范一点😀
      • 吕岳阳:卧槽,这个ip还真把百度打开了

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

      本文链接:https://www.haomeiwen.com/subject/lgacextx.html