美文网首页我爱编程
Node.js 尝鲜笔记 v2

Node.js 尝鲜笔记 v2

作者: By_syk | 来源:发表于2018-01-31 12:13 被阅读31次

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm 是全球最大的开源生态系统。
    Node.js 中文网

    如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器,并配上 mod_php5 模块和 php-cgi。
    从这个角度看,整个“接收 HTTP 请求并提供 Web 页面”的需求根本不需要 PHP 来处理。
    不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。
    菜鸟教程

    下面记录了在 Windows 和 Ubuntu 中使用 Node.js 的笔记。
    (笔者的系统环境为 Windows 10 64位,Ubuntu 14.4 64位)

    安装

    Node.js 官网目前提供的版本是 v8.9.4 LTSv9.4.0 Current。笔者选择了 v8.9.4
    Node.js 中文网目前提供了 v8.9.3 的长期支持版本以及同步的中文文档)

    Windows

    对于 Windows,有 .msi 和压缩包两种安装方式。下载压缩包 node-v8.9.4-win-x64.zip,解压到 D:\Nodejs\ 目录。
    (此处注意一点,为了方便使用命令 node,尽量不要修改文件名 node.exe。如果选择 .msi 安装方式则无此顾虑。)

    配置环境变量:
    D:\Nodejs\node-v8.9.4-win-x64 添加到 PATH

    检查

    node -v
    

    输出如

    v8.9.4
    

    进入 D:\Nodejs\node_modules\ 目录可以发现集成了 npm。检查

    npm -v
    

    输出如

    5.6.0
    
    Ubuntu

    对于 Ubuntu,也有多种安装方式。

    • 其一,直接从仓库安装
    apt-get install nodejs
    apt-get install npm
    

    检查

    nodejs -v
    npm -v
    

    输出如

    v0.10.25
    1.3.10
    
    • 其二,下载编译好的版本
    wget 'https://nodejs.org/dist/v6.2.0/node-v6.2.0-linux-x64.tar.gz'
    tar zxvf node-v6.2.0-linux-x64.tar.gz -C /opt
    

    (该版本已自带 npm
    配置环境变量 /etc/profile

    # Set Node.js environment
    export NODE_HOME=/opt/node-v6.2.0-linux-x64
    export NODE_PATH=${NODE_HOME}/lib/node_modules
    export PATH=${PATH}:${NODE_HOME}/bin
    
    source /etc/profile
    

    检查

    node -v
    npm -v
    

    输出如

    v6.2.0
    3.8.9
    
    • 其三,编译源码
      略。

    可见第一种方式最简单,但缺点就是版本老旧;第二种方式可以使用较新的版本;第三种方式待笔者进阶再做尝试。此处笔者选择了第二种方式以继续。

    如果选择第一种方式,可能需要对命令做一个链接,因为其他地方会用到node命令而不是nodejs

    ln -s /usr/bin/nodejs /usr/bin/node
    

    测试

    编写 HelloWorld 应用 hello.js

    // 使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http
    var http = require('http');
    
    http.createServer(function(request, response) {
      // 发送 HTTP 头部
      response.writeHead(200, {'Content-Type': 'text/plain'});
      // 发送相应数据
      response.end('Hello, world!');
    }).listen(8888);
    
    // 终端打印以表示启动成功
    console.log('Server running at http://localhost:8888/');
    

    运行

    node hello.js
    

    浏览器访问 http://localhost:8888/,出现 Hello, world!,成功。

    应用

    在 Ubuntu 上部署 App 版本检查更新服务。

    cd /opt/node-v6.2.0-linux-x64
    mkdir SchTtableAppVerCheck
    cd SchTtableAppVerCheck
    

    安装 Express 框架

    Express 是一个简洁而灵活的 Node.js Web 应用框架,提供了一系列强大特性帮助你创建各种 Web 应用和丰富的 HTTP 工具。
    Node.js 中文网

    npm install express -g
    

    * 几个附加重要模块

    npm install body-parser -g
    npm install cookie-parser -g
    npm install multer -g
    

    -g 全局安装)
    * npmjs.org 官方可能访问较慢,可以使用淘宝 NPM 镜像,页面有操作方法,不再赘述。
    编写应用 app.js

    var express = require('express');
    var app = express();
    
    // 文件读写模块
    var fs = require('fs');
    
    app.get('/SchTtable/appversion.do', function(req, res) {
      var data;
      try {
        // 读取 .js 代码文件所在目录的 .json 数据文件
        data = fs.readFileSync(__dirname + '/appversion.json', 'utf-8');
        // 检查格式
        data = JSON.parse(data);
      } catch (err) {
        data = {};
        console.log(err);
      }
      res.jsonp(data);
    });
    
    var server = app.listen(8080, function() {
      var host = server.address().address;
      var port = server.address().port;
    
      console.log("http://%s:%s", host, port);
    });
    
    console.log('SchTtableAppVerCheck is running.');
    

    完成后 ls 检查

    app.js  appversion.json  node_modules
    

    运行

    node app.js
    
    如何后台运行?

    有两种方法,其一 nohup 开进程;其二 forever 模块管理。笔者采用第二种方法。
    安装 forever 模块

    npm install forever -g
    

    运行

    forever start app.js
    

    检查

    forever list
    

    停止

    forever stop app.js
    

    更多用法参考 foreverjs / forever

    相关文章

      网友评论

        本文标题:Node.js 尝鲜笔记 v2

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