# 后端框架

# Node.js

:一个 JavaScript 的运行时环境。

  • 官方文档 (opens new window)
  • 于 2009 年,由 Ryan Dahl 发布。
  • 基于 Chrome 浏览器的 V8 引擎。
    • V8 引擎采用 C++ 开发,它将 JS 代码直接编译成机器码(而不是字节码),从而将 JS 代码的执行速度提高到接近二进制程序。
  • 可用于运行 JS 开发的后端程序。
    • 一般作为中间层,接收前端的访问请求,然后转发给真正的后端服务器。
  • 从零开始开发 JS 后端应用的工作量很大,通常采用一些基于 Node.js 的后端开发框架。比如:
    • Express :轻量级,使用量大。
    • Next.js
    • Koa

# 安装

  • 用 yum 安装:

    curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
    yum install nodejs
    
    • 如果用 CentOS 的默认 yum 源,则安装的 npm 版本较老。
  • 或者用 Docker 部署:

    docker run -it --rm \
        -v ~/.npmrc:/root/.npmrc \   # 挂载配置文件
        -v $PWD:/data \              # 挂载项目目录
        --workdir /data \
        node:16.13-alpine \
        npm install
    

# 用法示例

  1. 编写一个 server.js 脚本:

    var http = require('http');   // 导入 http 模块
    
    http.createServer(function (request, response) {
        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.end('Hello World\n');
    }).listen(80);
    
    console.log('Server running at http://127.0.0.1:80/');  // 打印信息到 Linux 终端
    
  2. 用 node 运行 js 脚本:

    node server.js
        # --max-old-space-size=2048     # 老年代内存的最大体积,单位为 MB 。如果占用内存超过上限且无法 GC ,则进程会崩溃退出
        # --max-semi-space-size=16      # semi 空间的最大体积,单位为 MB ,64 位系统上默认为 16MB 。增加该内存可以提高吞吐量
        # --semi-space-growth-factor=2  # 年轻代内存起始包含 1 个 semi 空间,还可以增加 factor 个
    
    • 可通过命令行传入 node.js 配置参数,还可通过环境变量:
      export NODE_OPTIONS="--max-old-space-size=4096"
      

# Deno

:一个 JavaScript、TypeScript 的运行时环境,采用 Rust 开发。