Node.js项目Firekylin博客

Node.js简介

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

你可能感兴趣的:(Node.js项目Firekylin博客)