前情摘要:虽然群晖有web station 作为开发简单网页的服务器首选,但是web station 里面最好用的技术栈还是基于LNMP或者LAMP的php开发环境。对于学习nodejs的同学可能丈二和尚,摸不着头脑,到底如何在web station上运行nodejs?可能并不能快速找到相关文档以供解决问题。
而群晖的docker套件正如改革春风,它是各种应用甚至系统的容器,生产力强大,能够安装各种软件和环境,并且可视化界面让我们无需懂得多少代码就能快速构建开发和运行所需环境,本文介绍一种简单的nodejs 运行方法和用docker构建简单的web服务器。
php 的后端大概可以有 LNMP或者LAMP,实际上包括系统linux,Nginx或Apache,数据库mysql或者mariaDB,和PHP开发语言。
而本次采用技术栈为前端容易理解的基于JavaScript的Nodejs (which 替代了PHP),使用json格式的mongoDB which 替代mysql,简单网页暂不需要Nginx和Apache,开发系统选用centos 开发版。
运行容器添加独立的mongoDB和centos.
mongoDB开放映射端口,比如默认27017;centos 映射内部端口80(或者其他)为32770(或其他);
这样就可以通过ip地址:端口的方式访问mongoDB 和 centos的web服务器了。
centos容器详情:
包括
- 映射端口和装载路径文件夹到群晖,
- 安装部署nodejs
- 拷贝代码并最后node app 运行相关代码。
第一步:
第二步centos下终端安装部署nodejs
nodejs的直接部署(终端命令)
首先安装 wget:
yum install -y wget
下载 nodejs 最新的 bin 包:
wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz
解压包
xz -d node-v9.3.0-linux-x64.tar.xz
tar -xf node-v9.3.0-linux-x64.tar
部署 bin 文件(让node 全局可用)
因为在根目录安装,路径为~/node-v9.3.0-linux-x64/bin。
ln -s ~/node-v9.3.0-linux-x64/bin/node /usr/bin/node
ln -s ~/node-v9.3.0-linux-x64/bin/npm /usr/bin/npm
测试
node -v
npm
输出版本号,则部署 OK:
在www中npm安装所需模块:
包括
npm init安装dependencies或者手动安装四个包
art-template作为页面分离和拼接字符串等的模板引擎,
mongoose 连接mongoDB数据库
router作为路由
serve-static访问照片、css等静态资源。
文件列表(简单模式)
model 设置数据库连接
public 存放静态资源
route设置路由
views存放art文件,即页面模块
app.js 引入模块和启动服务器。
编写好路由后,cd 到 www文件夹,node app 启动即可运行编写好的网页了。
PS:mongoDB可视化软件:compass
编辑器:vs code