易得优软件----最新资讯
Node.js的安装与调试
人气:218      时间:2019/2/26 19:23:19

(本文刊发于《网络安全和信息化》2019年第3期)

Node.js作为一个新兴的前端框架,后台语言,发布于2009年5月,它并不是一个类似jQuery的JavaScript框架,而是一个运行环境(runtime environment),是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。与其他编程语言有所不同的是,Node.js能快速地构建起WEB服务器,并可以与前端AJAX配合,以前后端分离的方式完成网站的功能。

3.jpg

LNMP代表的就是Linux系统下Nginx+MySQL+PHP这种网站服务器架构,在LNMP环境中,我们很轻松地就可以安装并运行Node.js。

一、在CentOs7服务器系统中安装LNMP。

在安装前先在终端执行命令:

# screen -S lnmp

如果提示找不到命令就yum安装 screen:

# yum install screen

然后就可以安装LNMP了:

# cd /usr/local/src

# wget -c http://soft.vpser.net/lnmp/lnmp1.5beta.tar.gz && tar zxf lnmp1.5beta.tar.gz && cd lnmp1.5 && ./install.sh lnmp

这个安装过程虽然时间很长,但按照一步一步的提示完全可以轻松完成。

二、安装Node.js。

# cd  /usr/local/scr/

# wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz

# xz -d node-v10.13.0-linux-x64.tar.xz

# tar -xf node-v10.13.0-linux-x64.tar

# ln -s ~/node-v10.13.0-linux-x64/bin/node /usr/bin/node

# ln -s ~/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm

安装完成后,就可以用以下命令查看版本来验证是否安装成功。

# node -v

# npm -v

可以根据需要再安装一些Node.js的常用模块:

# npm install nodemailer    #邮件发送模块

# npm install mysql    #mysql数据库驱动模块

# npm install redis    #内存数据库模块

三、在站点内server文件夹中建立server.js 来创建服务。

# cd  /home/wwwroot/nodejs.qhdedu.com/server

# vi server.js

输入以下内容:

const http = require('http')

const hostname = '127.0.0.1'

const port = 8536

const server = http.createServer((req, res) =>

{

    res.statusCode = 200

    res.setHeader('Content-Type', 'text/plain; charset=utf-8')

    var postData = "";

    res.end(hostname +'服务器启动成功')

})

server.listen(port, hostname, () => {

console.log(`Server running at http://${hostname}:${port}/`)

})

四、安装forever以此启动并持续运行server.js。

# npm install forever -g

# cd  /etc/init.d/

# vi   forever.sh

在新建的文forever.sh中输入以下内容:

#!/bin/sh

#下面是要启动服务的命令 同service forever start *.js

/root/node-v10.13.0-linux-x64/bin/forever start /home/wwwroot/nodejs.qhdedu.com /server/server.js

然后再把此脚本设置成服务。

# chmod +x forever.sh

# chkconfig --add forever.sh

五、前端页面生成AJAX提交。

# cd  /home/wwwroot/nodejs.qhdedu.com

# vi  index.html

以下为index.html页面内容:

<!DOCTYPE html>

<html>

<head>

<title>测试</title>

<script src="js/jquery-2.1.5.min.js" type="text/javascript"></script>

</head>

<body>

<div id="div1">正在读取</div>

    <script charset="utf-8" type="text/javascript">

            var strtemp="/server/?act=1234";

            strtemp = encodeURI(strtemp);

            $.ajax({

                type: "Post",

                url: strtemp,

                data: {data1:'13D17C93EDB',},

                cache: false,

        contentType: "application/x-www-form-urlencoded; charset=UTF-8",

                success: function (tempstr) {

                    $("#div1").html("已经读取:" + tempstr);

                }

            });

    </script>

</body>

</html>

六、Nginx中设置反向代理。

在Nginx中建立一个nodejs.qhdedu.com站点,在其对应的nodejs.qhdedu.com.conf配置文件中,要有以下设置:

listen 80;  #侦听80端口

…………

location /server {

    proxy_pass   http://127.0.0.1:8536; #反向代理

    }

…………

重新启动系统后,就可以用http://nodejs.qhdedu.com 来访问这个网站了,当然如果用http://nodejs.qhdedu.com:8536这个带端口号的地址访问会报错,因为Noejs创建的WEB服务器工作于127.0.0.1,一般用来在后端处理前端提交的AJAX。若想用http://nodejs.qhdedu.com:8536直接访问,请在server.js及nodejs.qhdedu.com.conf中把127.0.0.1换成其外网地址即可。


本文作者:赵学作,河北科技师范学院副教授,研究方向:网站建设及软件开发。

河北•秦皇岛    qhdzxz#163.com (#换成@) 电话:  13703353520    老版入口

QQ:25681881 QQ:25681881(点击这里留言)        QQ:25295110QQ:25295110(点击这里留言)               冀公网安备 13030202001530号     

您的IP: 34.229.151.87:::34.229.151.87      冀ICP备11009121号-3         本站alexa全球排名

Copyright 1999-2019 V12.0(20161031-1118) 版 20190107   学作 开发维护 服务器时间:2019-05-22 23:33:12