Node.js项目Firekylin博客

Node.js简介 【Node.js项目Firekylin博客】Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效,非常适合运行在分布式设备的数据密集型的实时应用。Node.js 的包管理器 npm,是全球最大的开源库生态系统
典型的应用场景包括:

  • 实时应用:如在线聊天,实时通知推送等等(如socket.io)
  • 分布式应用:通过高效的并行I/O使用已有的数据
  • 工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序
  • 游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)
  • 利用稳定接口提升Web渲染能力
  • 前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(如著名的
    纯Javascript全栈式MEAN架构)
node部署
wget https://nodejs.org/dist/v10.16.1/node-v10.16.1-linux-x64.tar.xz tar xf node-v10.16.1-linux-x64.tar.xz -C /usr/local/ ln -s node-v10.16.1-linux-x64 node

配置node环境变量 vim /etc/profile.d/node.sh
export PATH=$PATH:/usr/local/node/bin

npm配置仓库源
npm config set registry https://registry.npm.taobao.org/

cat /root/.npmrc
registry=https://registry.npm.taobao.org/

测试项目hello world vim example.js
const http = require('http'); const hostname = '0.0.0.0'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });

启动项目
node example.js &>/dev/null &

安装依赖项 Node包管理器(npm)是Node自带的工具,可以轻松安装第三方Node模块。
它用一行命令就能从package.json文件中读出依赖项,把它们都装好
在项目根目录下执行:
npm install

你应该能看到一个新创建的node_modules目录,这个目录中放的就是程序的依赖项
使用 NPM 安装 PM2
npm install pm2 -g

准备MySQL
create database firekylin character set utf8 collate utf8_general_ci; grant all on firekylin.* to 'firekylin'@'127.0.0.1' identified by '123456';

mysql -h 127.0.0.1 -ufirekylin -p123456
Firekylin FireKylin 开源博客系统,是由奇虎360公司Web前端工程师组成的专业团队 75Team 进行开发和维护
wget https://firekylin.org/release/latest.tar.gz tar xf latest.tar.gz cd firekylin npm install

复制项目下的 pm2_default.json 文件生成新文件 pm2.json
cp pm2_default.json pm2.json

修改 pm2.json 文件中的 cwd 配置值为项目的当前路径 /opt/firekylin
vim pm2.json
{ "apps": [{ "name": "firekylin", "script": "www/production.js", "cwd": "/opt/firekylin", "exec_mode": "fork", "max_memory_restart": "1G", "autorestart": true, "node_args": [], "args": [], "env": {} }] }

启动项目
pm2 startOrReload pm2.json

设置端口
firewall-cmd --zone=public --add-port=8360/tcp --permanent

访问 http://ip:8360/
后台 http://ip:8360/admin

    推荐阅读